Python 调用 requests 模拟登陆
一、requests 库
requests 是用 python 语言写的一个 http 库,基于 urllib3 开发
用法:
import requests
r = requests.get('https://testerhome.com')
print(r.status_code)
print('testerhome' in r.text)
输出:
200
True
二、session 会话
在 session 会话中,具有 requests 的所有 API 用法,且一直保持用户登陆后的 cookie,避免某些 sessionid 获取不到问题。
用法:
import requests
s = requests.Session()
r = s.get('https://testerhome.com')
print(r.status_code)
print('testerhome' in r.text)
输出:
200
True
三、模拟登陆请求
import requests
import re
# 正则表达式获取token
def regular(url):
url.encoding = 'utf-8'
response_url = url.text
p1 = r"(?<=name=\"csrf-token\" content=\").+?(?=\")"
pattern = re.compile(p1)
matcher = re.search(pattern, response_url).group(0)
return matcher
s = requests.Session()
未登录HOME页 = s.get('https://testerhome.com')
登录 = s.post('https://testerhome.com/account/sign_in',
data = {'utf8': '✓',
'user[login]': '登录名',
'user[password]': '密码',
'user[remember_me]': '0',
'commit': '登录'},
headers={'X-CSRF-Token':regular(未登录HOME页)})
已登录HOME页 = s.get('https://testerhome.com')
print('膨化先生' in 已登录HOME页.text)
输出:
True