2010-12-13 10 views
2

私は、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') 
+3

の代替ではなく、解決策:Mechanizeのライブラリhttp://wwwsearch.sourceforge.netを使用/ mechanize/ –

+0

解決策でもありませんが、PythonでHTMLを掻き集め、[BeautifulSoup](http://www.crummy.com/software/BeautifulSoup)について知らない場合は非常に便利です。 – Russ

答えて

0

Bolachaで見てください、それはクッキーや他のものを扱うhttplib2のラッパーだ...

+0

ありがとう、私はそれを試してみます。 – Giovanni

関連する問題