22

私の目的は、Google 検索用語を入力した後、最初のページのすべてのリンクから html を抽出することです。私はプロキシの背後で作業しているため、これが私のアプローチです。

1.最初に mechanize を使用してフォームに検索語を入力し、プロキシとロボットを正しく設定しました。

2.リンクを抽出した後、urllib2.ProxyHandlerをグローバルに使用するオープナーを使用して、URLを個別に開きました。

ただし、これによりこのエラーが発生します。それを理解することができません。

urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
4

2 に答える 2

21

Python ライブラリ モジュールをコピーして編集する代わりに、ssl_version キーワード パラメータをオーバーライドして、ssl モジュールの ssl.wrap_socket() にモンキー パッチを適用できます。次のコードはそのまま使用できます。リクエストを行う前に、これをプログラムの最初に置いてください。

import ssl
from functools import wraps
def sslwrap(func):
    @wraps(func)
    def bar(*args, **kw):
        kw['ssl_version'] = ssl.PROTOCOL_TLSv1
        return func(*args, **kw)
    return bar

ssl.wrap_socket = sslwrap(ssl.wrap_socket)
于 2014-06-12T03:06:48.637 に答える
4

これは既知のバグですが、このリンクのコメントにいくつかの解決策が記載されています。それらを参照してください、あなたに役立つかもしれません、バグ url

于 2012-08-02T07:43:23.707 に答える