3

Pythonから、基本認証を使用してHTTPS経由でWebサイトからコンテンツを取得したいと思います。ディスク上のコンテンツが必要です。私はイントラネット上にいて、HTTPSサーバーを信頼しています。プラットフォームはWindows上のPython2.6.2です。

私はurllib2で遊んでいますが、今のところ成功しませんでした。

os.system()を介してwgetを呼び出して、ソリューションを実行しています。

wget_cmd = r'\path\to\wget.exe -q -e "https_proxy = http://fqdn.to.proxy:port" --no-check-certificate --http-user="username" --http-password="password" -O path\to\output https://fqdn.to.site/content'

os.system()を削除したいと思います。Pythonでそれは可能ですか?

4

3 に答える 3

3

これを試してください(サーバーの領域も入力する必要があることに注意してください):

import urllib2
authinfo = urllib2.HTTPBasicAuthHandler()
authinfo.add_password(realm='Fill In Realm Here',
                      uri='https://fqdn.to.site/content',
                      user='username',
                      passwd='password')
proxy_support = urllib2.ProxyHandler({"https" : "http://fqdn.to.proxy:port"})
opener = urllib2.build_opener(proxy_support, authinfo)
fp = opener.open("https://fqdn.to.site/content")
open(r"path\to\output", "wb").write(fp.read())
于 2009-09-21T07:50:23.827 に答える
3

プロキシと https は、urllib2で長い間機能していませんでした。これは、python 2.6 (v2.6.3) の次のリリース バージョンで修正される予定です。

それまでの間、正しいサポートを再実装することができます。これは、Mercurial に対して行ったことです: http://hg.intevation.org/mercurial/crew/rev/59acb9c7d90f

于 2009-09-21T08:02:17.467 に答える
0

これも試すことができます: http://code.google.com/p/python-httpclient/

(サーバー証明書の検証にも対応しています。)

于 2010-08-12T13:36:27.863 に答える