urllib2请求返回不同的页面大约1到5次

时间:2015-06-04 22:13:47

标签: python request urllib2 user-agent

import urllib2

req = urllib2.Request('http://www.amazon.com/Sweet-Virgin-Organic-Coconut-13-5oz/dp/B00Q5CIL4Y', headers={ 'User-Agent': 'Mozilla/5.0' })

html = urllib2.urlopen(req).read()
print len(html)

这是我能做的最小的例子。如果你运行那么那么〜5次响应的长度将是5769,而其他时候它将是正常的可用响应。

这是怎么回事?

编辑:

错误回复:http://pastebin.com/d7zdy0uv

2 个答案:

答案 0 :(得分:2)

鉴于简短回复的内容,这变得更容易回答。亚马逊怀疑你正在自动抓取其网站,并为你提供了一个CAPTCHA,如果你是一个使用浏览器的人,你可以解决。

我有点惊讶它只会在五个请求中命中你,而不是总是或永远不会。

正如亚马逊的回应中所述,请考虑使用他们的API。

答案 1 :(得分:0)

看起来它一定是你身边的一个问题 - 我已经运行了~50次,而且我每次都会得到~490000左右。

您的费率有限。

检查数据长度,当您检测到短数据包时,需要等待一段时间,直到您不受速率限制。 (你必须弄清楚可持续的比率)