我已经在我的服务器上安装了Tor + Privoxy
,他们工作正常! (测试)。
但是现在当我尝试使用urllib2 (python)
来刮取谷歌购物结果时,当然使用代理,我总是被谷歌阻止(有时503错误,有时403错误)。所以任何人都有任何解决方案可以帮我避免这个问题?非常感谢!!
我使用的源代码:
_HEADERS = {
'User-Agent': 'Mozilla/5.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding': 'deflate',
'Connection': 'close',
'DNT': '1'
}
request = urllib2.Request("https://www.google.com/#q=iphone+5&tbm=shop", headers=self._HEADERS)
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
try:
response = urllib2.urlopen(request)
html = response.read()
print html
except urllib2.HTTPError as e:
print e.code
print e.reason
请注意:当我不使用代理时,它可以正常工作!
答案 0 :(得分:0)
您是否安装了tor,Tor的控制器库? 只需几行代码,您就可以从Tor请求新的身份。参见:
https://stem.torproject.org/faq.html#how-do-i-request-a-new-identity-from-tor
只需使用例外来捕获403和503错误,并通过请求新身份来处理它们,如上面的链接所示。祝你好运。
答案 1 :(得分:0)
Google阻止了许多退出Tor节点,因为Google收到了很多来自他们的请求。 所以这个错误是概率问题,改变你的退出Tor节点,直到找到一个没有被谷歌阻止的。