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