私の目的は、google検索語を入力した後、最初のページのすべてのリンクからhtmlを抽出することです。私はプロキシの背後で働いているので、これが私のアプローチです。
1.最初にmechanizeを使用してフォームに検索用語を入力し、プロキシとロボットを正しく設定しました。
2.リンクを抽出した後、私はurllib2.ProxyHandlerをグローバルに使用するオープナーを使用して、URLを個別に開きました。
しかし、これは私にこのエラーを与えます。それを理解することができません。
urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
Pythonライブラリモジュールをコピーして編集する代わりに、ssl_versionキーワードパラメータをオーバーライドすることにより、sslモジュールのssl.wrap_socket()にパッチを適用できます。次のコードをそのまま使用できます。Putこれは、要求を行う前のプログラムの開始時です。
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)
これは既知のバグですが、このリンクのコメントには、その解決策がいくつか記載されています。それらを参照してください、あなたに役立つかもしれません バグのURL 。