2012-01-04 11 views
6

Python kullanarak bir çerez gerektiren bir RSS beslemesi için istekte bulunmaya çalışıyorum. Urllib2'yi kullanmayı düşündüm ve uygun başlığı eklemenin yeterli olacağını, ancak isteğin izinsiz olduğunu söyleyerek durdum.Çerezlerle birlikte urllib2

Bu, uzak siteler tarafında bir sorun olabilir, ama emin değildi. Urllib2'yi çerezlerle birlikte nasıl kullanırım? Ben requests paketini, docs kullanacağı

+0

Bilmek istediğiniz tek şey bir çerezin nasıl ayarlanacağıysa, [bu soru] (http://stackoverflow.com/questions/3334809/python-urllib2-how-to-send-cookie-with-urlopen-request) bir sağlar swer. –

+0

Bağlantı için teşekkürler. Ben kontrol ettim ve aynı şekilde çerezleri (her bir lib için biraz farklı) ayarlıyorum ama yine de hayır şans – neolaser

cevap

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

(httplib, makineleştirmek gibi, bükme) bunun için daha iyi bir paket o urlib2 (aklı başında API) daha kullanmak çok daha kolay vardır. Bir yanıt bazı Çerezler içeriyorsa

, onlara hızlı erişim elde edebilirsiniz:

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:

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

sunucuya kendi tanımlama bilgilerini göndermek için, çerezleri parametresini kullanabilirsiniz

+6

istekleri kesinlikle çok daha güzel, ama [urllib2 ve cookielib ile ilk örneğinize benzer bir şey yapabilirsiniz] (http://docs.python.org/library/cookielib.html#examples), eğer gerekiyorsa – dbr