私の問題は、スリープ時間を延長しても、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リクエストを実行する必要があると思います。だから私が欠けているものはありますか?追加のヘッダーを渡す必要があるかもしれませんか?
(これは最初の質問に関連する2番目の質問ではありません)
また、ProxyHandlerのdictの2つの異なる構文を見つけました。
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のベストプラクティスは何ですか?