大家都知道亚马逊是全球最大的购物平台很多商品信息、用户评价等等都是最丰富的。但是对于爬虫来说,亚马逊的反爬机制应该也是数一数二的,想要获取亚马逊数据的人很多,但是真的能成功的确是少数,所以今天小编就手把手带大家,越过亚马逊的各种反爬机制爬取你想要的商品、评论等等有用信息。 这里我们可以通过以下一些步骤去实现亚马逊数据的获取。一、使用requests的get请求,获取亚马逊列表和详情页的页面内容,不幸的是亚马逊同样拒绝了requsets模块的请求。二、我们给requests加上cookie再去获取数据,这个方式可以少量的获取一些数据,但是意义不大,毕竟我们需要大量的数据。三、加上代理进行访问,目前国内代理访问亚马逊会很不稳定,通过之前的测试发现会出现连接不上的情况,所以这次使用了稳定的代理,是由亿牛云提供的隧道代理,如果有代理的话访问的成功率会高,速度也会快一点。隧道代理的使用方式如下: `#! -- encoding:utf-8 --
1import requests 2import random 3 4# 要访问的目标页面 5targetUrl = "http://httpbin.org/ip" 6 7# 要访问的目标HTTPS页面 8# targetUrl = "https://httpbin.org/ip" 9 10# 代理服务器(产品官网 www.16yun.cn) 11proxyHost = "t.16yun.cn" 12proxyPort = "31111" 13 14# 代理验证信息 15proxyUser = "username" 16proxyPass = "password" 17 18proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { 19 "host" : proxyHost, 20 "port" : proxyPort, 21 "user" : proxyUser, 22 "pass" : proxyPass, 23} 24 25# 设置 http和https访问都是用HTTP代理 26proxies = { 27 "http" : proxyMeta, 28 "https" : proxyMeta, 29} 30 31 32# 设置IP切换头 33tunnel = random.randint(1,10000) 34headers = {"Proxy-Tunnel": str(tunnel)} 35 36 37 38resp = requests.get(targetUrl, proxies=proxies, headers=headers) 39 40print resp.status_code 41print resp.text
