9
A
回答
25
您應該使用cookielib module與urllib。
它會在請求之間存儲cookie,您可以將它們加載/保存到磁盤上。下面是一個例子:
import cookielib
import urllib2
cookies = cookielib.LWPCookieJar()
handlers = [
urllib2.HTTPHandler(),
urllib2.HTTPSHandler(),
urllib2.HTTPCookieProcessor(cookies)
]
opener = urllib2.build_opener(*handlers)
def fetch(uri):
req = urllib2.Request(uri)
return opener.open(req)
def dump():
for cookie in cookies:
print cookie.name, cookie.value
uri = 'http://www.google.com/'
res = fetch(uri)
dump()
res = fetch(uri)
dump()
# save cookies to disk. you can load them with cookies.load() as well.
cookies.save('mycookies.txt')
注意,對於NID
和PREF
的值是請求之間的相同。如果您省略了HTTPCookieProcessor
,這些將會不同(urllib2不會在第二次請求時發送Cookie
標頭)。
11
看的urllib模塊:
(與Python 3.1,在Python 2時,使用urllib2.urlopen代替) 對於檢索的Cookie:
>>> import urllib.request
>>> d = urllib.request.urlopen("http://www.google.co.uk")
>>> d.getheader('Set-Cookie')
'PREF=ID=a45c444aa509cd98:FF=0:TM=14.....'
以及用於發送,只需發送一個Cookie頭部與請求。這樣的:
r=urllib.request.Request("http://www.example.com/",headers={'Cookie':"session_id=1231245546"})
urllib.request.urlopen(r)
編輯:
的 「http.cookie」( 「曲奇」 的Python 2)可爲您更好地工作:
3
您可以在Python 2.7
url="http://google.com"
request = urllib2.Request(url)
sock=urllib2.urlopen(request)
cookies=sock.info()['Set-Cookie']
content=sock.read()
sock.close()
print (cookies, content)
使用和發送請求時回
def sendResponse(cookies):
import urllib
request = urllib2.Request("http://google.com")
request.add_header("Cookie", cookies)
request.add_data(urllib.urlencode([('arg1','val1'),('arg1','val1')]))
opener=urllib2
opener=urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1))
sock=opener.open(request)
content=sock.read()
sock.close()
print len(content)
相關問題
- 1. 如何檢索Django/W cookie中的cookie來設置Python變量
- 2. 如何從jsoup檢索Set-Cookie標頭?
- 3. HTTP標頭中沒有cookie
- 4. 如何在Grails中設置和檢索cookie?
- 5. 如何在http請求中設置cookie?
- 6. 如何設置cookie的JavaScript和PHP代碼中檢索
- 7. 如何在Objective-C中爲HTTP設置http標頭?
- 8. 我如何在Spring Boot中的index.html上設置cookie或標頭
- 9. 如何在JavaScript中爲websocket的請求標頭設置cookie?
- 10. 如何通過標頭設置cookie?
- 11. 如何爲webSocket javascript設置cookie標頭?
- 12. 在ClientWebSocket中設置「User-Agent」HTTP標頭
- 13. 在InputStreamEntity中設置HTTP標頭
- 14. 在Play 2.0(scala)中設置HTTP標頭?
- 15. 如何在HTTP頭中設置REMOTE_USER?
- 16. 從WKWebview中檢索HTTP響應標頭
- 17. 在nativescript中複製http cookie標頭Android
- 18. HTTP Apache - 如何在標題中爲安全cookie設置參數?
- 19. 如何在Python Flask中設置cookie?
- 20. 在DelegatingFilterProxy中設置HTTP頭
- 21. 如何從Java的HTTP標頭中檢索IP地址
- 22. Rails + Cucumber/Capybara:如何在測試中設置/檢索cookie?
- 23. 使用HttpComponents設置和檢索Cookie
- 24. 在SOAP消息處理程序內的HTTP標頭中設置自定義Cookie
- 25. 從Firefox擴展中設置HTTP標頭
- 26. 如何在Apache JClouds中設置HTTP標頭?
- 27. 如何在Glassfish服務器中設置HTTP標頭
- 28. 如何在Watir webdriver會話中設置HTTP標頭?
- 29. 如何在RESTEasy客戶端框架中設置HTTP標頭?
- 30. 如何在Akka Scala中設置HttpResponse中的Set-Cookie頭?
build_opener()將爲您添加HTTPHandler。如果Python安裝具有SSL支持,它還將添加HTTPSHandler。 https://docs.python.org/2/library/urllib2.html#urllib2.build_opener – 2014-10-27 03:53:37