2012-01-04 102 views
6

我正在嘗試使用python向需要cookie的RSS提要發送請求。我認爲使用urllib2並添加適當的標題就足夠了,但請求仍然說不真實。urllib2與餅乾

我猜這可能是遠程站點的問題,但無法確定。如何使用urllib2和cookie?有沒有更好的軟件包這一(如httplib的,機械化,捲曲)

+0

如果你只想知道如何設置一個cookie,[這個問題](http://stackoverflow.com/questions/3334809/python-urllib2-how-to-send-cookie-with-urlopen-request )提供了一個swer。 – 2012-01-04 22:32:30

+0

感謝您的鏈接。我檢查了它,並且以相同的方式設置了cookie(對於每個使用的lib略有不同),但仍然沒有運氣 – neolaser 2012-01-04 22:58:53

回答

5
import urllib2 
opener = urllib2.build_opener() 
opener.addheaders.append(('Cookie', 'cookiename=cookievalue')) 
f = opener.open("http://example.com/") 
13

我會用requests包,docs,這是一個更容易比urlib2(理智API)來使用。

如果響應包含一些餅乾,您可以快速訪問它們:

url = 'http://httpbin.org/cookies/set/requests-is/awesome' 
r = requests.get(url) 
print r.cookies #{'requests-is': 'awesome'} 

要發送您自己的cookie到服務器,你可以使用的cookies參數:

url = 'http://httpbin.org/cookies' 
cookies = dict(cookies_are='working') 
r = requests.get(url, cookies=cookies) 
r.content # '{"cookies": {"cookies_are": "working"}}' 

http://docs.python-requests.org/en/latest/user/quickstart/#cookies

+6

請求絕對好得多,但是您可以做[類似於第一個使用內置urllib2和cookielib的示例] (http://docs.python.org/library/cookielib.html#examples),如果必須的話 – dbr 2012-01-04 22:38:15