搜狗站長工具【post請求模擬登入】程式碼分享總結【批量提交搜狗收錄網址】

比特幣愛好者007發表於2020-10-05

【核心要素】程式碼總結:模擬登入最核心的一點就是這裡必須使用同一個Session 會話的請求來登入【獲取驗證碼和登入必須是同一個Sesson例項】,不然模擬登入會無法成功!

 

第一步:建立一個Session例項物件【s = requests.Session()】

第二步:請求驗證碼圖片識別驗證碼【使用s這個Session例項-s.get請求圖片驗證碼識別】

第三部:繼續使用s這個Session例項請求模擬登入,這樣肯定就沒問題了

總結:所有的模擬登入圖片驗證碼驗證的都必須使用同一個Session例項請求!

 

import requests
import re
import random
from io import BytesIO
from PIL import Image

url = 'http://zhanzhang.sogou.com/index.php'

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
}

s = requests.Session()

response = s.get(url, headers=headers)

verify = re.findall("js_vcode_img\"\ssrc=\"(.*?)\"", response.text)[0]

# verify_url = 'http://zhanzhang.sogou.com' + verify + "?tag=" + str(random.random())

verify_url = "http://zhanzhang.sogou.com/index.php/uc/vcode"

print(verify_url)

verify_response = s.get(verify_url, headers=headers)

im = Image.open(BytesIO(verify_response.content))

im.show()

result = input("請輸入驗證碼:\n")

data = {
    "loginForm[username]": "賬戶",
    "loginForm[password]": "密碼",
    "loginForm[vcode]": result
}

login_url = 'http://zhanzhang.sogou.com/index.php/login'

r = s.post(login_url, json=headers, data=data)

print(r.text)

 

相關文章