這是一個(gè)可以幫助我們搶券的小工具。不一定能搶到,只是增加了概率与帆。
首先我們需要安裝python環(huán)境
這里我們選用Anaconda了赌,它可以方便的管理python包和環(huán)境。
下載地址https://www.anaconda.com/products/individual
我們使用Anaconda中的Spyder來(lái)編輯搶券小工具
瀏覽器選擇
我使用了火狐瀏覽器玄糟,以下講解截圖均是基于火狐瀏覽器勿她。
下載地址https://www.firefox.com.cn/
正片開(kāi)始
1.首先使用火狐瀏覽器打開(kāi)京東商城,登錄賬號(hào)阵翎,進(jìn)入優(yōu)惠券頁(yè)面
2.右鍵選擇檢查元素
3.點(diǎn)擊頁(yè)面領(lǐng)取一個(gè)優(yōu)惠券逢并,查看網(wǎng)絡(luò)
接口參數(shù)講解
需要用到2個(gè)接口,第一行和第四行郭卫。第一行這個(gè)接口是京東進(jìn)行身份驗(yàn)證用的砍聊,第四行接口是搶券用的。
身份驗(yàn)證接口
我們需要從中獲取一些有用信息贰军。請(qǐng)求頭參數(shù)(User-Agent玻蝌、Referer、Cookie)词疼。其中User-Agent俯树、Referer這2個(gè)參數(shù)和搶券接口是相同的。
通過(guò)復(fù)制請(qǐng)求頭贰盗。我們從中剝離出User-Agent许饿、Referer、Cookie數(shù)據(jù)童太,它們分別對(duì)應(yīng)完整代碼中的user_agent米辐、referer、cookie_1
通過(guò)復(fù)制網(wǎng)址獲取身份驗(yàn)證接口的地址书释,對(duì)應(yīng)完整代碼中的url_1
搶券接口
和身份驗(yàn)證接口一樣,通過(guò)復(fù)制信息獲取Cookie和接口地址赊窥,分別對(duì)應(yīng)完整代碼中的cookie_2爆惧、url_2。
需要注意的是锨能,下面數(shù)據(jù)是接口地址扯再,其中的key要?jiǎng)h除掉,這個(gè)key是優(yōu)惠券的編碼址遇,我們需要把它替換成想要搶的券的編碼熄阻。對(duì)應(yīng)完整代碼中的coupon_key
https://a.jd.com/indexAjax/getCoupon.html?callback=jQuery5746673&key=0271DFD6890D3B60ACB8BA8A9E49BEB17FE8E6323A36834B63FE69E95D38088EEB376E75E098A8957F9DCEC56AAF5FD6EE12CF82BAC47129E098BA801496C8C2BED55B0AD982233C8C5D05B90A17FC67F0C6597810E700D247B396787AA294B7&type=1&_=1597754338810
需要改成這樣,這里的coupon_key是券的編碼
url_2 = "https://a.jd.com/indexAjax/getCoupon.html?callback=jQuery5746673&key={0}&type=1&_=1597754338810".format(coupon_key)
獲取券編碼方式:
-
激活選取頁(yè)面中的元素功能
-
點(diǎn)擊優(yōu)惠券倔约,找到帶有data-key層級(jí)的div標(biāo)簽秃殉。這個(gè)data-key的值就是我們要找的券的編碼。對(duì)應(yīng)完整代碼中的coupon_key
至此,我們已經(jīng)獲取到需要的數(shù)據(jù)了钾军,請(qǐng)自行替換參數(shù)鳄袍。scheduled_time是設(shè)置搶券的時(shí)間,可以精確到秒吏恭。完整代碼如下:
import requests
import datetime
# 設(shè)置搶券的時(shí)間
scheduled_time = "2020-08-19 11:36:59"
# 瀏覽器及版本
user_agent = ""
# 接口的referer參數(shù)
referer = ""
# cookie參數(shù)(驗(yàn)證身份接口)
cookie_1 = ""
# 驗(yàn)證身份接口請(qǐng)求頭
header_1={
'User-Agent':user_agent,
'Referer':referer,
'Cookie':cookie_1}
# 驗(yàn)證身份接口地址
url_1 = ""
# cookie參數(shù)(搶券接口)
cookie_2 = ""
# 搶券接口請(qǐng)求頭
header_2={
'User-Agent':user_agent,
'Referer':referer,
'Cookie': cookie_2}
# 券的編號(hào)
coupon_key = ""
# 搶券接口地址
# 注意把獲取到的接口地址改成下面代碼模樣
url_2 = "https://a.jd.com/indexAjax/getCoupon.html?callback=jQuery5746673&key={0}&type=1&_=1597754338810".format(coupon_key)
session = requests.session()
# 先調(diào)用京東反爬接口拗小,進(jìn)行身份驗(yàn)證
response_1 = session.get(url_1, headers=header_1)
print(response_1.text)
# 執(zhí)行搶券操作
print('等待搶券中......')
while True:
# 當(dāng)前時(shí)間
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 如果到預(yù)定時(shí)間就開(kāi)始調(diào)用搶券接口,然后打印結(jié)果
if now >= scheduled_time:
response_2 = requests.get(url_2, headers=header_2)
response_2.encoding='utf-8'
print(response_2.text)
if '領(lǐng)券成功' in response_2.text:
break
補(bǔ)充說(shuō)明
Spyder編輯器樱哼,左上角三角為運(yùn)行哀九。右上角方塊為停止。右側(cè)Console中會(huì)打印數(shù)據(jù)搅幅,如果出現(xiàn)重復(fù)打印已領(lǐng)取或其它領(lǐng)取失敗的情況阅束,務(wù)必及時(shí)點(diǎn)擊右上角方塊停止運(yùn)行,以防造成不必要的麻煩盏筐。
特別說(shuō)明
此篇文章重在學(xué)習(xí)Python自動(dòng)化围俘,切莫他用。