requests
import requests
r = requests.post('http://xx.xx.xx.xx/login!doLogin.action', data=data)
cookies = r.cookies.get_dict()
e = requests.post('http://xx.xx.xx.xx/login!doLogin.action', data=data,cookies=cookies)
print(e)
我们要用浏览器的检查功能找到登录的那一个’action
’,这个’action’的地址就是我们要找的url
。
这里的url
是相同的,第一次是获取cookies
,第二次是加入cookies
去登录。
也可以用urllib
和http
进行抓包,模仿登录
import urllib.request
import http.cookiejar
print("*** 开始执行 ***\n")
#第一次进入首页,获取cookie
url = 'http://xx.xx.xx.xx/login!doLogin.action'
htmlObj = urllib.request.urlopen(url)
cookie = http.cookiejar.LWPCookieJar("cookies.txt")
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
urllib.request.install_opener(opener)
urllib.request.urlopen(url)
cookie.save(ignore_discard=True, ignore_expires=True)
#进行登陆操作
url = 'http://xx.xx.xx.xx/login!doLogin.action'
postData = {
"account": username,
"pwd": password
}
postDataEncode = urllib.parse.urlencode(postData).encode(encoding="UTF8")
request = urllib.request.Request(url,data = postDataEncode,method="POST")
htmlObj = urllib.request.urlopen(request)
html = htmlObj.read().decode("UTF-8")
resultJson = json.loads(html)
if resultJson['status'] == 'y':
print("*** 登陆成功 ***\n")
else:
print("登陆失败:" + resultJson['msg'] )
exit("*** 执行结束 ***")