Mwe*_*erf 7 python cookies urllib python-3.x
如何从 cookie 中获取 cookie urllib.request?
import urllib.request
import urllib.parse
data = urllib.parse.urlencode({
'user': 'user',
'pass': 'pass'
})
data = data.encode('utf-8')
request = urllib.request.urlopen('http://example.com', data)
print(request.info())
Run Code Online (Sandbox Code Playgroud)
request.info() 返回 cookie 但不是非常有用的方式。
response.info()是一个dict类型对象。这样你就可以解析你需要的任何信息。这是一个用python3编写的demo:
from urllib import request
from urllib.error import HTTPError
# declare url, header_params
req = request.Request(url, data=None, headers=header_params, method='GET')
try:
response = request.urlopen(req)
cookie = response.info().get_all('Set-Cookie')
content_type = response.info()['Content-Type']
except HTTPError as err:
print("err status: {0}".format(err))
return
Run Code Online (Sandbox Code Playgroud)
您现在可以cookie根据您的应用程序需求解析变量。
小智 -1
我认为现在使用requests包是一个更好的选择。尝试以下示例代码,该代码显示您访问时谷歌设置 cookie:
import requests
url = "http://www.google.com"
r = requests.get(url,timeout=5)
if r.status_code == 200:
for cookie in r.cookies:
print(cookie) # Use "print cookie" if you use Python 2.
Run Code Online (Sandbox Code Playgroud)
给出:
Cookie NID=67=n0l3ME1Jl3-wwlH7oE5pvxJ_CfU12hT5Kh65wh21bvE3hrKFAo1sJVj_UcuLCr76Ubi3yxENROaYNEitdgW4IttL43YZGlf8xAPl1IbzoLG31KP5U2tiP2y4DzVOJ2fA for .google.se/
Cookie PREF=ID=ce66d1288fc0d977:FF=0:TM=1407525509:LM=1407525509:S=LxQv7q8fju-iHJPZ for .google.se/
Run Code Online (Sandbox Code Playgroud)