私は、romウェブページを読み込んでファイルに書き込むシンプルなプログラムをPythonで実装しようとしています。インクリメンタルに番号が付けられた約2000ページのメッセージがありますが、いくつかの番号がありません。ユーザー名、パスワード、クッキーを含むPython自動化Webページのダウンロード
ウェブサイトはユーザー名とパスワードで保護されていますが、通常は手動でアクセスするのに使用するのと同じユーザー名とパスワードを使用しています。私は公式のPythonのWebサイトで見つかったCookie処理でいくつかのコード例を使用していますが、私はそれをしようとしたとき、私は返事
をコピーしようとしているウェブサイトは、「あなたのブラウザは、当社のクッキーを受け付けていません。ビューに(コード0) "
明らかにクッキーに問題があり、ユーザー名とパスワードを正しく処理していない可能性があります。次のコードに関する提案はありますか?
import urllib2
import cookielib
import string
import urllib
def cook():
url="http://www.URL.com/message/"
cj = cookielib.LWPCookieJar()
authinfo = urllib2.HTTPBasicAuthHandler()
realm = "http://www.URL.com"
username = "ID"
password = "PSWD"
host = "http://www.URL.com/message/"
authinfo.add_password(realm, host, username, password)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj), authinfo)
urllib2.install_opener(opener)
# Create request object
txheaders = { 'User-agent' : "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)" }
try:
req = urllib2.Request(url, None, txheaders)
cj.add_cookie_header(req)
f = urllib2.urlopen(req)
except IOError, e:
print "Failed to open", url
if hasattr(e, 'code'):
print "Error code:", e.code
else:
print f
cook
url="http://www.URL.com/message/"
urllib.urlretrieve(url + '1', 'filename')
の代替ではなく、解決策:Mechanizeのライブラリhttp://wwwsearch.sourceforge.netを使用/ mechanize/ –
解決策でもありませんが、PythonでHTMLを掻き集め、[BeautifulSoup](http://www.crummy.com/software/BeautifulSoup)について知らない場合は非常に便利です。 – Russ