1

私の問題は、スリープ時間を延長しても、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のベストプラクティスは何ですか?

4

0 に答える 0