您现在的位置是:首页 >
当前栏目
如何应对亚马逊反爬机制
如何 机制 应对 亚马逊 反爬
2023-06-13 09:11:16 时间
大家都知道亚马逊是全球最大的购物平台很多商品信息、用户评价等等都是最丰富的。但是对于爬虫来说,亚马逊的反爬机制应该也是数一数二的,想要获取亚马逊数据的人很多,但是真的能成功的确是少数,所以今天小编就手把手带大家,越过亚马逊的各种反爬机制爬取你想要的商品、评论等等有用信息。
这里我们可以通过以下一些步骤去实现亚马逊数据的获取。一、使用requests的get请求,获取亚马逊列表和详情页的页面内容,不幸的是亚马逊同样拒绝了requsets模块的请求。二、我们给requests加上cookie再去获取数据,这个方式可以少量的获取一些数据,但是意义不大,毕竟我们需要大量的数据。三、加上代理进行访问,目前国内代理访问亚马逊会很不稳定,通过之前的测试发现会出现连接不上的情况,所以这次使用了稳定的代理,是由亿牛云提供的隧道代理,可以白嫖50M流量。如果有代理的话访问的成功率会高,速度也会快一点。隧道代理的使用方式如下:
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"
# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "username"
proxyPass = "password"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text
加上代理之后,亚马逊商品信息的获取改善了不少,之前代码会报各种连接失败的错误,在requests请求之前调用代理获取的方法,就可以实现代理请求了。但是只添加代理也不是效果就很理想,毕竟亚马逊的反爬机制还有其他的,所以想要获取更多的数据,提升爬取的数据量需要我们做好其他的反爬策略。
相关文章
- 【说站】python如何实现事务机制
- 如何用Know Streaming来查询Kafka的消息
- HTTP代理如何爬取?保姆式教程(附测试视频)
- 如何关闭Eureka的自我保护机制
- 奇点已来,推进All on Serverless有哪些困难、如何破局?| 解读Serverless的2022
- MySQL锁机制:如何释放锁?(mysql锁释放)
- 如何在Centos上安装python3.4详解编程语言
- 如何在你的 Python 游戏中添加一个玩家
- 27、如何让流程机制得到有效的执行?
- MySQL 的并发锁机制:如何优化数据库访问效率?(mysql并发锁)
- 如何在 Oracle 中增加列并添加注释?(oracle增加列及注释)
- 如何解决MySQL连接断开问题(mysql连接断开)
- Oracle数据库的事务机制对于表的操作是如何影响的?(oracle 事务 表)
- 如何使用MySQL查询实现两张表的交集操作(mysql 两表取交集)
- 消息Redis实现消息推送一种可靠机制(如何用redis推送)
- Oracle事务处理如何保证数据完整性(oracle事物点)
- Redis淘汰机制面试时如何回答(redis淘汰机制面试)
- 如何保持数据库输出格式不变