Python 3 FancyURLopener cookie处理

时间:2013-01-09 20:35:58

标签: python cookies python-3.x urllib

我尝试从中检索文件的网站需要一个cookie,而我似乎无法弄清楚如何在使用FancyURLopener时添加cookie处理。

这是我的一段代码:

user_agents = [
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
    'Opera/9.25 (Windows NT 5.1; U; en)',
]
site_file = "somesite.com/pic.jpeg"
class MyOpener(FancyURLopener, object):
    version = choice(user_agents)
myopener = MyOpener()
myopener.retrieve(site_file, "pic.jpeg")

我也试过使用这样的东西,但不确定如何用这种方法实际检索文件。

cj = http.cookiejar.CookieJar()
request = urllib.request.Request(site)
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
request.add_header('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0')

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式检索文件:

import shutil
from contextlib import closing

with closing(opener.open(request)) as src, open(filename, "wb") as dest:
    shutil.copyfileobj(src, dest)