模拟登录,动态token,携带cookie,密文加密,登录拉勾网

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)
#打印第二次网址

 

你可能感兴趣的:(Python的爬虫使用案例,Python的常见库使用,一只网络上的虫(爬虫实例))