根据ASIN爬取亚马逊商品的变体和图片

1.使用AMZSscount获取的产品信息的,将这一列复制一下,构造详情页的链接到redis数据库中,进行分布式抓取。
在这里插入图片描述
在这里插入图片描述
2.打开excel,先运行这个代码。
在这里插入图片描述


import redis
import xlwings as xw
conn = redis.Redis(host='192.168.31.104', port=6379, )
#app = xw.App(visible=True, add_book=False)
wb = xw.Book('./吴银琳要求吊带包采集数据 sling bag.xlsx')
sht=wb.sheets['Sheet1']
print(sht.range('B2').value)
ASIN_LIST=sht.range('B2').expand('down').value
print(ASIN_LIST)for each in ASIN_LIST:each='https://www.amazon.com/dp/'+eachprint(each)conn.lpush('USA_Detail:start_urls',each)print(len(ASIN_LIST))

然后redis数据库中就有url
在这里插入图片描述
3.再运行这个代码。
在这里插入图片描述
运行效果如下:
在这里插入图片描述
3.这里我开的是一个线程,使用的是本地的IP,由于使用了自动爬取速度,

settings中设置:

RANDOMIZE_DOWNLOAD_DELAY = True
'''
https://www.cnblogs.com/xueli/p/7250537.html  对setting的解释
'''# from scrapy.contrib.throttle import AutoThrottle
AUTOTHROTTLE_ENABLED = True
#起始的延迟
AUTOTHROTTLE_START_DELAY = 3
# #最小延迟
DOWNLOAD_DELAY = random.randint(3,5)
# #最大延迟
AUTOTHROTTLE_MAX_DELAY = 15
#每秒并发请求数的平均值,不能高于 CONCURRENT_REQUESTS_PER_DOMAIN或CONCURRENT_REQUESTS_PER_IP,调高了则吞吐量增大强奸目标站点,调低了则对目标站点更加”礼貌“
#每个特定的时间点,scrapy并发请求的数目都可能高于或低于该值,这是爬虫视图达到的建议值而不是硬限制
AUTOTHROTTLE_TARGET_CONCURRENCY = 5 # 平均每秒并发数 原先值为16
#调试
AUTOTHROTTLE_DEBUG = True
CONCURRENT_REQUESTS_PER_DOMAIN = 5 #单个域名的请求数,,原先值为16
CONCURRENT_REQUESTS_PER_IP =5 # 单个IP的并发请求数,原先值为16# Configure maximum concurrent requests performed by Scrapy (default: 16)
# 配置Scrapy执行的最大并发请求(默认值:16)
CONCURRENT_REQUESTS = 1#类似于线程数量。。默认是16,一下子提交16个强求。。

在中间件中我设置了cookie的一部分,防止页面的重定向跳转,,
cookie的使用有两种方式
3.1你可以将页面的cookies全部复制过来,转换为字典的格式。这里不详细说了,你可以下载爬取日本站的代码看一下,里面注释的有。日本站有防火墙,要使用国外的IP代理,我用的是TOR
3.2使用selenium获取cookie的方式保存为txt文件,这里我以前就是使用这个方式的,这里保留了写法,并没有使用。
在这里插入图片描述
4.我在中间件中也设置了使用阿布云的IP代理,不过注释掉了。
5.将保存到redis数据的数据保存到本地的MongoDB数据库。

# -*- coding: utf-8 -*-
# @Time    : 2020/4/15 10:45
# @Author  : 结尾!!
# @FileName: 1将数据保存到MongoDB.py
# @Software: PyCharm#从redis数据保存到MongoDBimport redis
import pymongo
import json
import time
def process_item():# 创建redis数据库连接rediscli = redis.Redis(host = "127.0.0.1", port = 6379, db = "0")# 创建MongoDB数据库连接mongocli = pymongo.MongoClient(host = "127.0.0.1", port = 27017)# 创建mongodb数据库名称dbname = mongocli["amazon_us"]# 创建mongodb数据库youyuan的表名称sheetname = dbname["Asin_Body_0415"]offset = 0while True:# redis 数据表名 和 数据source, data = rediscli.blpop("USA_Detail:items")offset += 1# 将json对象转换为Python对象data = json.loads(data)print(data)# 将数据插入到sheetname表里sheetname.insert(data)print (offset)time.sleep(0)if __name__ == "__main__":process_item()

代码我放在这里了
https://github.com/jevy146/spider_amazon_python/
欢迎下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29757.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​中国移动董事长杨杰:云擎未来铸重器,算启新程绘宏图

4 月 25 日,2023 移动云大会盛大开幕。中国移动董事长杨杰在大会主论坛作题为《云擎未来铸重器 算启新程绘宏图》的主旨演讲。 中国移动董事长 杨杰 杨杰指出,随着新一代信息技术深度融入经济社会民生,数字经济日益呈现出以信息网络为关键基…

ChatGPT!我是你的破壁人;比尔·盖茨不看好Web3与元宇宙;FIFA押中4届世界杯冠军;GitHub今日热榜 | ShowMeAI资讯日报

👀日报合辑 | 🎡AI应用与工具大全 | 🔔公众号资料下载 | 🍩韩信子 🎡 『GPTZero』用 ChatGPT 写论文糊弄老师?已经不灵了~ 语言生成模型的诞生与优化,给教育和学术界带来了不少困扰。继纽约教育…

openai产品展示

产品 不知道大家刷抖音的时候是否刷到了人工智能要取代人类的一些短视频,他们所提到的主角就是一个AGI模型——chatgpt,资本对其的追求程度可以用火爆🔥来形容了吧,先给大家讲一下chatgpt吧,如果没兴趣看我扯犊子可以直…

chatgpt赋能python:如何设置Python中的长度限制

如何设置Python中的长度限制 Python是一种非常流行的编程语言,用于开发各种不同类型的应用程序。在处理字符串的过程中,Python提供了一些有用的函数,以便快速设置字符串的长度限制。在本文中,我们将介绍如何在Python中设置长度限…

中国近代发生了三大移民潮,人们为什么要选择背井离乡呢?

历史发生大规模变动时,会出现一定的移民潮,在近代发生了三大移民潮,分别是走西口、闯东关、下南洋,这三次移民潮对中国产生了巨大的影响。中国传统都有落叶归根的思想,大部分迁徙外地的人们都会寻根问祖,当…

版号解禁,网络游戏却未解冻

游戏行业曙光似乎在上周五出现。当天中宣部版权局副局长冯士新在2018中国游戏产业年会上表示,首批部分游戏已经完成审核,正在抓紧核发版号。随即,腾讯在港股市场收盘涨幅达4.51%,市值重返3万亿港元。 欢呼之余,我们不能…

医药电商政策有望松绑,市场或迎来爆发期

医药电商或再次迎来爆发期。近日,国家食药监局相关负责人来广东调研医药电商监管及发展课题时透露,此次调研内容包括开放部分处方药网上销售事项及互联网上医保消费方法,接下来将制定有关政策支持优化互联网医药销售。业内人士分析指出&#…

Oracle10G遇到Imp-00003:ORACLE error 20001 encountered错误

今天通过Imp命令导入数据,遇到如图错误: 度娘一下(Google……还没开禁),是版本不一致引起的。就是导出的exp与导入的imp版本不一致,后来想想的确是,公司服务器为Oracle11g,测试为Ora…

蓝牙_红外_Wi-Fi_WLAN_3G

蓝牙(Bluetooth),是一种无线个人局域网(Wireless PAN),1994年最初由爱立信创制。1999年5月20日,由索尼易立信、国际商业机器、英特尔、诺基亚及东芝公司等业界龙头组成的蓝牙技术联盟订定技术标准。(2001年,瑞典电信设备制造商爱立信公司的手机部门分割,与日本索尼So…

安全域的划分

安全域概述 • 网络安全域是指同一系统内有相同的安全保护需求,相互信任,并具有相同的安全访问控制和边界控制策略的子网或网络,且相同的网络安全域共享一样的安全策略。广义可理解为具有相同业务要求和安全要求的IT系统要素的集合。 网络安全…

为什么不大愿意调用国内厂商提供的API

郑昀 20100819 我平时喜欢玩Mashup,所以对国外各种开放接口都有兴趣看两眼。像Twitter的,Yahoo!的(Yahoo! Pipe、YQL),Google(Buzz、Google Reader、Chart、WebFinger等)的,即使是很…

《51单片机应用开发范例大全(第3版)》——2.1 基本器件实现端口扩展实例

本节书摘来异步社区《51单片机应用开发范例大全(第3版)》一书中的第2章,第2.1节,作者:张杰 , 宋戈 , 黄鹤松 , 员玉良,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.1 基本器件实现端口扩展实例 目前,比较常…

《51单片机应用开发范例大全(第3版)》——第2章 单片机接口的扩展 2.1 基本器件实现端口扩展实例...

本节书摘来自异步社区《51单片机应用开发范例大全(第3版)》一书中的第2章,第2.1节,作者 张杰,宋戈,黄鹤松,员玉良,更多章节内容可以访问云栖社区“异步社区”公众号查看。 第2章 单片机接口的扩展 单片机输…

超6.75万台!中国移动2018年第二批次服务器大单揭晓

超6.75万台!中国移动2018年PC服务器集中采购第二批次公告中不见联想,中兴、浪潮、华为、曙光等都到齐了,连名不见经传的烽火通信和中移全通都到了,这是为什么呢? 带着这个问题,我们慢慢往下看:…

ucos源码阅读1——任务1

ucos源码阅读1——任务 os_core.cOsInit()设置中断向量创建唯一的任务及OSStart()结语os_core.c 按照main函数的流程去阅读源码。 OsInit() 1、哦,怎么图片这么大,首先是定义了个钩子函数,在os_cpu_c.c由用户实现。 2、InitMisc杂七杂八的初始化,初始化变量是在uCOS_II…

罗永浩直播翻车频现,抖音选错了吗?

图片来源于网络 文|陈小江 来源 | 螳螂财经(ID:TanglangFin) 罗永浩如果能多花点时间,“花点时间”就不会悔不当初了。 5月15日,罗永浩直播为“花点时间”卖玫瑰,最终在520这天“炸了锅”。大量网友涌进微博吐槽&a…

设计模式(18)行为型模式 - 访问者模式

前言 温故而知新 还是先复习前面学到的知识: 行为型模式:描述多个类或对象之间怎么协助共同完成单个对象无法实现的任务,涉及算法与对象间的职责分配 模板方法模式:定义一个操作流程中的算法骨架,特定的步骤方法的具体…

诚之和:滴滴禁闭百日司机、用户与暗战

撰文 吴先之 编辑 | 王 潘 西非的黑猩猩既聪明又残忍。 每当旧王年老体衰时,其他猩猩会将它围殴致死然后分而食之,这么做的目的不仅仅是发泄积压已久的愤怒,还希望继承一部分“王者之气”。 7月2日监管部门开始对滴滴进行审查,暂停新用户注册、下架APP等接踵而至。巨头…

LiteOS学习---开发环境初识

背景介绍 记得电影《一代宗师中》,有这样一句话 也是时势使然,某为厂成了面子,欺负它就等于打了国人的脸,至于它担不担得起,另说。 早在2015年,华为就推出了这个LiteOS。如果问它和鸿蒙系统有什么关系 华…

第 6 篇、Linux C基础 | 数据类型和标识符

1.C语言的数据类型 001基本类型 字符类型: char 1 byte 8 bit 1111 1111 1-----------最高位符号位,1 负 0 正 unsigned char 无符号的字符类型 signed char 有符号的char类型 整型: 短整型:short 2 byt…