使用 urllib 启用 cookie

Enabling cookies with urllib

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

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

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

当然是使用 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(这不是真的顺便说一下,可以回答)。

如果您认为您会从更高层次的方法中获益,您可能应该评估 mechanize and selenium

此答案已通过 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()