1

urllib2 を使用して https ページを取得しようとすると、失敗し続けます

Invalid url, unable to resolve

URL は https://www.domainsbyproxy.com/default.aspx ですが、複数の https サイトでこれが発生しています。

私はpython 2.7を使用しています。以下は、接続をセットアップするために使用しているコードです

opener = urllib2.OpenerDirector()
opener.add_handler(urllib2.HTTPHandler())
opener.add_handler(urllib2.HTTPDefaultErrorHandler())
opener.addheaders = [('Accept-encoding', 'gzip')]
fetch_timeout = 12
response = opener.open(url, None, fetch_timeout)

ハンドラーを手動で設定する理由は、リダイレクトを処理したくないためです (問題なく動作します)。上記は http リクエストでは正常に機能しますが、https では失敗します。

手がかりはありますか?

4

2 に答える 2

6

HTTPHandler の代わりに HTTPSHandler を使用する必要があります

于 2012-04-18T03:46:24.927 に答える
2

外部ライブラリを気にしない場合は、優れたrequestsモジュールを検討してください。これらの癖は urllib で処理されます。

使用するコードrequestsは次のとおりです。

import requests
r = requests.get(url, headers={'Accept-encoding': 'gzip'}, timeout=12)
于 2012-04-18T04:31:21.377 に答える