# 模拟访问亚马逊商品的爬虫
`AmazonRobot` 是通过 `python` 实现的一个通过脚本自动访问[Amazon][1]上的商品的爬虫程序。主要实现了用户注册、根据给出的搜索词语和商品的 `asin` 号进行搜索并访问商品、按照一定概率将商品加入购物车等。同时通过动态修改UA ,维护代理池, 控制爬取速率防止被识别出是爬虫。由于需要解析网页的 JS 代码,整个代码主要依靠 `selenium` 来解析 JS 代码。
用到的数据库有 `Redis` 和 `MySQL`,`Redis` 主要用于存储代理池、用于注册的一些用户信息(姓名,电话,地址,visa卡等);`MySQL`用于存储被访问的商品的一些信息(asin号,访问日期,日pv量,商品的排名等)。**需要先在代码中指定这两个数据库的地址**。
除了 `selenium`, 还依赖的第三方库有:`redis`, `MySQLdb`, `requests`, `bs4`, `user_agent`;python版本为2.7
整个代码的结构如下:
```
├── Main.py # 主程序入口
├── Robot.py # 模拟访问的Robot类
├── get_proxy_and_user_information # 抓取代理和用户信息,存入Redis
│ ├── ConnectRedis.py # 需要在该文件中指定 Redis 数据库的地址
│ ├── GetProxy.py
│ ├── GetUserInfo.py
│ ├── IgnoreWarnings.py
│ ├── __init__.py
├── record_product_information # 更新商品在 MySQL 中的信息
│ ├── create_table.sql
│ ├── GetProductRank.py
│ ├── VisitRecord.py # 需要在该文件中指定 MySQL 数据库的地址
│ ├── __init__.py
└── scripts
├── Alarm.py # 用于检测主机是否宕机的脚本
└── ChangeMacAddress.py # 更改主机 mac 地址
```
上面最后的一个文件`ChangeMacAddress.py`可用于更改主机 mac 地址(目前支持 ubuntu 16.0 和 centos6.0),原来是为了防止被识别出是爬虫而写的,但是后来想想实际上并不能起到这个作用。从计算机网络的知识可知,数据包的mac地址每经过一次转发mac地址都会改变,原因是以太网在链路层中通过arp广播建立arp表用于 IP 和 mac 地址的映射关系,然后进行转发,当数据包从链路层出来后,实际上是根据 mac 地址去查找目的主机去转发的,因此数据包在转发过程中IP地址不变(NAT之类的除外),而mac地址每转发一次就改变一次。显然,我们的网络跟亚马逊的网络不是直连的,因此mac地址肯定会改变多次。
最后,通过 `selenium` 实现的爬虫实际上是非常消耗内存和CPU的,所以这样访问的效率会非常低下,在实验过程中对于流量较小的商品曾试过一周内将其从第五页推到首页,但是对于流量较大的商品作用就很小了。建议调试的时候带 GUI ,而在服务器运行的时候通过 `xvfb` 替代GUI,同时结合 `Ansible` 等实现主机群管理。
Amazon商品引流的 python 爬虫
21 浏览量
2024-06-17
22:05:55
上传
评论
收藏 383KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/4fe0098bbf0f4f10992a1f213d585818_xuezhe5212.jpg!1)
小蜜蜂vs码农
- 粉丝: 2000
- 资源: 262
最新资源
- xss 平台 源码资源打包
- The LCD1602 monitor + 3-Port USB 2.0 Hub cape for Loongson 2K100
- Performe data analysis, data visualization with Python and any B
- Getting familiar with Big data concept using Python library: PyS
- 475371489537032016335_从物质实体到关系实在_罗嘉昌中国社会科学出版社.djvu
- SheetBuddy is a Python library for performing exploratory data a
- blumind 3.2 (轻量的思维导图软件)
- 全国大学生建模大赛经典题目解析与相关知识点总结.docx
- 基于STM32的病室监护系统单片机代码
- 305建筑结构水电欧式6套(14.5x20.2)\施工图\D型施工图\空调05首层空调平面图(一).dwg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)