京東表示很無奈,爬蟲都用它練手
登入時,瀏覽器傳送了乙個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...