如何使用python 3发布sessionid
我是一个noob,我需要使用sessionid发布其他命令,比如search.do,我使用的是python3.5,但我不确定获取和发布它的最佳方式。 下面是我发布请求的方式如何使用python 3发布sessionid,python,sessionid,Python,Sessionid,我是一个noob,我需要使用sessionid发布其他命令,比如search.do,我使用的是python3.5,但我不确定获取和发布它的最佳方式。 下面是我发布请求的方式 import urllib.parse url = 'https://myapi.application.com/dmapi/login.do' values = {'account' : 'MYACCOUNT', 'username': 'admin', 'password': 'pas1234', 'appid
import urllib.parse
url = 'https://myapi.application.com/dmapi/login.do'
values = {'account' : 'MYACCOUNT', 'username': 'admin', 'password': 'pas1234', 'appid':'12346'}
data = urllib.parse.urlencode(values)
data = data.encode('utf-8') # data should be bytes
req = urllib.request.Request(url, data)
resp = urllib.request.urlopen(req)
respData = resp.read()
print(respData)
打印得到这个结果
b'errorcode=0\r\nsessionid=ef9a9cbd-e063-4be2-9301-9de59891304c\r\n'
我需要在后续请求中使用sessionid。最好的办法是什么 一个想法是通过sessionid=
提取最后一项:
>>> respData.split("sessionid=")[-1].strip()
'ef9a9cbd-e063-4be2-9301-9de59891304c'
另一种方法是使用正则表达式:
>>> import re
>>>
>>> re.search(r"sessionid=([A-Za-z0-9-]+)", respData).group(1)
'ef9a9cbd-e063-4be2-9301-9de59891304c'
一种方法是通过sessionid=
提取最后一项:
>>> respData.split("sessionid=")[-1].strip()
'ef9a9cbd-e063-4be2-9301-9de59891304c'
另一种方法是使用正则表达式:
>>> import re
>>>
>>> re.search(r"sessionid=([A-Za-z0-9-]+)", respData).group(1)
'ef9a9cbd-e063-4be2-9301-9de59891304c'
事实上,响应由行(以字节为单位)组成,其中一行包含会话id。您可以简单地读取和解析您得到的内容:
resp = urllib.request.urlopen(req)
errorcode = None
sessionid = None
for line in resp.read():
line = line.strip() # remove end of line
if line.startswith(b'errorcode'):
errorcode = line.split(b'=')[1]
if line.startswith(b'sessionid'):
sessionid = line.split(b'=')[1]
事实上,响应由行(以字节为单位)组成,其中一行包含会话id。您可以简单地读取和解析您得到的内容:
resp = urllib.request.urlopen(req)
errorcode = None
sessionid = None
for line in resp.read():
line = line.strip() # remove end of line
if line.startswith(b'errorcode'):
errorcode = line.split(b'=')[1]
if line.startswith(b'sessionid'):
sessionid = line.split(b'=')[1]