京東模擬登入

2021-08-11 10:32:18 字數 3143 閱讀 3260

京東表示很無奈,爬蟲都用它練手

登入時,瀏覽器傳送了乙個post請求,在請求頭上帶了基本引數,並不是所有引數在模擬時都需要,一般需要cookie,referer,和user-agent

會話物件requests.session能夠跨請求地保持某些引數,比如cookies,即在同乙個session例項發出的所有請求都保持同乙個cookies,而requests模組每次會自動處理cookies,這樣就很方便地處理登入時的cookies問題。

如果header中包含使用者cookie的話,不需使用者名稱密碼即可登入,可繞過驗證碼問題

原始碼返回json響應值,『success』。copy的時候發現這裡result返回值為整個頁面str**,並不是json響應,所以及其暴力地用find(『我的訂單』)判斷

soup = beautifulsoup(html, 'lxml') # lxml html 解析器

display = soup.select('#o-authcode')[0].get('style')

auth_code = ''

#if not display:

#print('需要驗證碼。。。')

code = input('請輸入驗證碼:')

return code

deflogin

(self):

""" 登入

:return:

"""url = ''

data = self.get_login_data()

headers =

content = s.post(url, data=data, headers=headers).text

json_string=json.dumps(content[1: -1])

result = json.loads(json_string)

return result

defrush

(self):

print('功能正在趕來的路上,敬請期待。。。')

pass

defhandle

(): print("******************** 選單列表 ********************")

print('1、搶購')

print('2、加入購物車')

num = input('請輸入功能編號:')

if num == '1':

print('搶購功能還沒做233')

elif num == '2':

print('加入購物車功能還沒做233')

else:

print('你不按套路出牌啊')

pass

password = input('請輸入京東密碼:')

jd = jd(username, password)

result = jd.login()

if result.find('我的訂單') > 0:

print('登入成功')

handle()

else:

print('登入失敗')

京東的登入,在第一次其認為有安全風險問題時,才會出現驗證碼,這裡之後的登入均沒有用到驗證碼。

參考資料

bs4 select()用法

python執行json.loads()錯誤及解決辦法

beautifulsoup用法

python中json庫loads方法valueerror異常分析

python 中json庫的 物件轉換問題

讀寫json資料

python模擬登入request.session()應用

京東模擬登入,自動完成滑塊驗證

最近在研究滑塊驗證碼這一塊,自然也玩了一把京東,發現之前的軌跡方程並不可用,需要自己慢慢除錯,找到合適的引數。這種滑塊認證的成功率不可能是100 所以要寫個迴圈,讓認證失敗的時候重新呼叫。先看效果 1 滑塊缺口距離識別 京東的驗證碼背景圖和模板圖大概各10張 缺口位置變化的 使用 cv2 庫,用模板...

京東登入頁

1 doctype html 2 html 3 head lang en 4 meta charset utf 8 5 title 京東登入頁 title 6 style 7header div 15.content 18.wrap 22.login box 26h2 36h2 a 46.login...

京東商城登入邏輯分析,實現程式登入京東商城

做這件事的初衷是最近發現有京豆這東西,獲取京豆的方法之一就是每天登入,於是想寫乙個自動登入京東的程式,放入自啟動,每天自動登入。分析工具為foxfire加firebug,進入登入頁面new login.aspx,會從伺服器端返回帶有id uuid type hidden value a2c762bd...