【问题标题】:Enabling cookies with urllib使用 urllib 启用 cookie
【发布时间】:2015-06-06 08:56:24
【问题描述】:

我想用urllib python 库解析一个网站。我是这样写的:

import urllib as web
source_rep.urlopen(url_rep).read()
print source_rep

网站向我返回一条消息,说我应该启用 cookie。我怎样才能用 python 做到这一点?

【问题讨论】:

    标签: python cookies urllib


    【解决方案1】:

    这个答案是用 Python 3.7 测试的。我通常会为每个我想要 cookie 的随机 URL 使用一个新的打开器

    from urllib.request import build_opener, HTTPCookieProcessor, Request
    url = 'https://www.cell.com/cell-metabolism/fulltext/S1550-4131(18)30630-2'
    opener = build_opener(HTTPCookieProcessor())
    

    没有Request 对象:

    response = opener.open(url, timeout=30)
    content = response.read()
    

    使用Request 对象:

    request = Request(url)
    response = opener.open(request, timeout=30)
    content = response.read()
    

    【讨论】:

      【解决方案2】:

      当然是使用CookieJar

      还有urllib2

      import cookielib
      import urllib2
      cookiejar= cookielib.LWPCookieJar()
      opener= urllib2.build_opener( urllib2.HTTPCookieProcessor(cookiejar) )
      opener.urlopen(...)
      

      顺便说一句:

      根据我的经验,您要解析的网站告诉您启用 cookie 是一个很好的指标,这将是一种不愉快的体验,您接下来会问how to enable javascript in urllib2(这不是真正可以回答的,由方式)。

      如果您认为您会从更高级别的方法中受益,您可能应该评估mechanizeselenium

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-09
        • 2021-02-13
        • 1970-01-01
        • 2016-09-17
        相关资源
        最近更新 更多