Python自动网页下载,包括用户名,密码和Cookie

时间:2010-12-13 00:41:22

标签: python cookies web passwords username

我正在尝试在Python中实现一个简单的程序,它读取rom网页并将它们写入文件。大约有2000页的消息递增编号,但是缺少一些数字。

该网站受用户名和密码保护,我使用的是通常用于手动访问的用户名和密码。我正在使用我在官方Python网站上找到的一些代码示例和cookie处理,但当我尝试使用我试图复制回复的网站时

  

“您的浏览器不接受我们的cookies。要查看此页面,请将您的浏览器偏好设置为接受cookie。(代码0)”

显然cookie存在问题,也许我没有正确处理用户名和密码。有关以下代码的任何建议吗?

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')

1 个答案:

答案 0 :(得分:0)

看看Bolacha,它是httplib2的一个包装器,用于处理cookie和其他东西......