import requests
import re
#导入相应的库文件
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3573.0 Safari/537.36'
}
#加入请求头
url = 'https://passport.lagou.com/login/login.html'
#从官网找到登录界面的url
r1 = requests.get('https://passport.lagou.com/login/login.html',headers=headers)
#登录界面上HTML的信息,得到这个网站,有动态的token验证
X_Anti_Forge_Token = re.findall("X_Anti_Forge_Token = '(.*?)'",r1.text,re.S)[0]
X_Anti_Forge_Code = re.findall("X_Anti_Forge_Code = '(.*?)'",r1.text,re.S)[0]
#使用正则表达式得到动态的token的值
r2 = requests.post(
#第二次访问,使用post方法,提交具体信息
url = 'https://passport.lagou.com/login/login.json',
#这个网址是提交具体信息的网址
headers = {
#添加请求头
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3573.0 Safari/537.36',
#添加设备请求头
'X-Anit-Forge-Code': X_Anti_Forge_Code,
'X-Anit-Forge-Token': X_Anti_Forge_Token,
#添加第一次得到的动态token的值
'Referer': 'https://passport.lagou.com/login/login.html',
#上一次请求的地址,可以理解为从哪里找到登录数据的
'X-Requested-With': "XMLHttpRequest"
#添加网站框架
},
data ={
#添加具体的提交信息,网站是使用form Data,提交的,是一个字典格式
"isValidate": True,
#IS验证
"username": '你的用户名',
"password": '你的密码',
#密码,有个问题这个网站的密码是有加密的,需要解密或者直接使用密文密码
"request_form_verifyCode": '',
#请求代码格式代码
"submit":'',
#点击登录,提交信息
"challenge": ''
#多次怀疑问题,其实我也是不知道什么意思,应该是多次验证,反正不知道什么意思都带着
},
cookies = r1.cookies.get_dict()
#还要带着从第一次请求网站得到的cookie值
)
print(r2.text)
#打印第二次网址