request应用之爬取亚马逊商品页面

尝试使用r=request.get(url)
查看
r.status_code,返回结果是503,
r.encoding发现返回的是ISO-8859-1,
r.encoding=r.apparent_encoding
返回结果:request应用之爬取亚马逊商品页面
说明亚马逊拒绝了访问,
许多网站对于爬虫有限制,途径主要有两种,一种是通过robots协议告知那些可以访问,那些不可以访问;一种是通过网站访问的http的头来查看访问是不是由一个爬虫引起的,网站一般接受的是由浏览器引发的http请求,而对于爬虫引起的请求是可以拒绝的。
对于response,即request返回的对象,也就是代码中的r,包含request请求,可以通过r.request.headers查看我们发给亚马逊的request的头部的内容,返回结果:request应用之爬取亚马逊商品页面
重点看:‘User-Agent’: ‘python-requests/2.21.0’,这说明爬虫告诉了亚马逊,这个请求是由python的request库的程序引发的请求。
通过更改头部信息,模拟一个浏览器向亚马逊发送请求,
kv={“user-agent”:“Mozilla/5.0”}
r=requests.get(url,headers=kv),
修改完之后,就可以正常返回商品页面信息了。