我的问题是,无论是否延长休眠时间,网站都会在每1500次请求后阻止IP。所以我在做请求时使用代理。贝娄是构建开场白的代码。
def getOpener(self, pip=None):
if pip:
proxy_handler = urllib2.ProxyHandler({'http': pip})
opnr = urllib2.build_opener(proxy_handler)
else:
opnr = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
opnr.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1')]
urllib2.install_opener(opnr)
return opnr
但是当使用代理(高匿名)时,该网站几乎不允许40-50个请求。为什么会这样?我认为每个代理应该做1500个请求。那么我有什么遗漏的东西吗?我可能需要传递一些额外的标题吗?
(这不是与第一个问题相关的第二个问题)
此外,我发现了ProxyHandler的两种不同的dict语法。
Syntax1:
proxy_handler = urllib2.ProxyHandler({'http': '61.233.25.166:80'})
Syntax2:
proxy_handler = urllib2.ProxyHandler({'http': 'http://61.233.25.166:80'}) #see http:// in value
它们有不同的含义或它们是否相同?什么是最佳实践Syntax1或Syntax2?