1. 程式人生 > >爬蟲入門,模擬登入,動態token,攜帶cookie,密文加密,登入拉勾網,簡單爬蟲案例

爬蟲入門,模擬登入,動態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)
#列印第二次網址