【问题标题】:How can I get cookies using urllib2如何使用 urllib2 获取 cookie
【发布时间】:2016-06-23 06:06:46
【问题描述】:

我使用 urllib2 爬取了一个网站,我想在登录后获取响应 cookie。我试过这个:

def test_login():
    log_data = {
        'account': my account,
        'password': my pwd
    }
    post_data = urllib.urlencode(log_data)
    cookjar = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookjar))
    headers = {
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Language': 'en-US,en;q=0.5',
            'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0',
            'Host': the web host,
            'Referer': 
        }
    req = urllib2.Request(the login page, post_data, headers=headers)
    content = opener.open(req)
    print cookjar
    for item in cookjar:
        print item, item.value

我知道了:

<cookielib.CookieJar[<Cookie PHPSESSID=aaaaa for the web/>, <Cookie ytkuser=bbbbb for the web>]>
<Cookie PHPSESSID=aaaaa for the web/> aaaaa 
<Cookie ytkuser=bbbbb for .yitiku.cn/> bbbbb

这不是我想要的格式,我想得到这样的字典: {'ytkuser':'','PHPSESSID':''}。如何将数据翻译成字典?或者任何其他方式来获取cookie?谢谢

【问题讨论】:

    标签: python cookies urllib2


    【解决方案1】:

    我知道了,我用了

    item.name and item.value
    

    【讨论】:

      【解决方案2】:

      你可以使用comprehensions:

      >>> data = dict((cookie.name, cookie.value) for cookie in cookjar)
      >>> print data["PHPSESSID"]
      "aaaaa"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-12
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 1970-01-01
        • 2011-02-02
        • 2011-08-20
        • 2021-02-13
        相关资源
        最近更新 更多