Skip to main content
 首页 » 编程设计

python之使用用户名,密码和Cookies进行Python自动网页下载

2025年05月04日13haluo1

我试图在Python中实现一个简单的程序,该程序读取rom网页并将其写入文件。大约有2000页的邮件递增编号,但是缺少一些编号。

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


  “您的浏览器不接受我们的cookie。要查看此页面,请设置您的浏览器首选项以接受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') 

请您参考如下方法:

看一下Bolacha,它是httplib2的包装程序,用于处理cookie和其他内容。