2013-01-09 35 views
1

我試圖從中檢索文件的網站需要一個cookie,我似乎無法弄清楚如何在使用FancyURLopener時添加cookie處理。Python 3 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

你可以通過檢索文件:

import shutil 
from contextlib import closing 

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

感謝那些工作。 – JSoothe