又到了周末的時間,每次周末都得整點花里胡哨的東西玩,今天就來說說怎么用Python腳本自動完成京東簽到領京豆
京豆在京東上面可以抵扣運費、充話費等等。京豆獲取方式有每日簽到、做任務
自動簽到腳本
這里用Python寫自動化腳本,去做每日簽到
腳本邏輯很簡單:用post請求去調用京東的簽到接口即可
1.登錄京東,獲取cookie
網頁上打開:https://www.jd.com/ 再按F12打開控制台,再點擊切換模式,切換到手機模式,刷新一下頁面。如圖所示
登錄自己的京東賬號。
控制台切換至 ”Application“ ,找到Cookies
選項,從 Cookie
中找到 pt_pin
和 pt_key
,點擊的時候把對應的Value
那一欄的值復制出來保存備用,如圖的位置(直接關閉瀏覽器,不要退出登錄,否則Cookie會失效)
2.寫Python腳本
Python發送POST請求京東的簽到接口,請求時Cookie里帶上上一步的pt_pin和pt_key的值即可,完整代碼如下,注意需要替換自己的pt_pin
和pt_key
值
import requests#導入request模塊
url = "https://api.m.jd.com/client.action?functionId=signBeanAct&body=%7B%22fp%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22referUrl%22%3A%22-1%22%2C%22userAgent%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22rnVersion%22%3A%223.9%22%7D&appid=ld&client=apple&clientVersion=10.0.4&networkType=wifi&osVersion=14.8.1&uuid=3acd1f6361f86fc0a1bc23971b2e7bbe6197afb6&openudid=3acd1f6361f86fc0a1bc23971b2e7bbe6197afb6&jsonp=jsonp_1645885800574_58482";
headers = {"Connection":'keep-alive',
"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
"Cache-Control": 'no-cache',
"User-Agent": "okhttp/3.12.1;jdmall;android;version/10.3.4;build/92451;",
"accept": "*/*",
"connection": "Keep-Alive",
"Accept-Encoding": "gzip,deflate",
"Cookie": "__jd_ref_cls=JingDou_SceneHome_NewGuidExpo; mba_muid=1645885780097318205272.81.1645885790055; mba_sid=81.5; __jda=122270672.1645885780097318205272.1645885780.1645885780.1645885780.1; __jdb=122270672.1.1645885780097318205272|1.1645885780; __jdc=122270672; __jdv=122270672%7Ckong%7Ct_1000170135%7Ctuiguang%7Cnotset%7C1644027879157; pre_seq=0; pre_session=3acd1f6361f86fc0a1bc23971b2e7bbe6197afb6|143; unpl=JF8EAKZnNSttWRkDURtVThUWHAgEWw1dH0dXOjMMAFVcTQQAEwZORxR7XlVdXhRKFx9sZhRUX1NIVw4YBCsiEEpcV1ZVC0kVAV9XNVddaEpkBRwAExEZQ1lWW1kMTBcEaWcAUVpeS1c1KwUbGyB7bVFeXAlOFQJobwxkXGhJVQQZBR0UFU1bZBUzCQYXBG1vBl1VXElRAR8FGxUWS1hRWVsISCcBb2cHUm1b%7CV2_ZzNtbRYAFxd9DUNcKRxYB2ILGloRUUYcIVpAAHsbWQZjVBEJclRCFnUUR11nGlgUZgIZXkFcQRRFCEJkexhdB24LFFtEUHMQfQ5GXH0pXAQJbRZeLAcCVEULRmR6KV5VNVYSCkVVRBUiAUEDKRgMBTRREV9KUUNGdlxAByhNWwVvBUIKEVBzJXwJdlR6GF0GZAoUWUdRQCUpUBkCJE0ZWTVcIlxyVnMURUooDytAGlU1Vl9fEgUWFSIPRFN7TlUCMFETDUIEERZ3AEBUKBoIAzRQRlpCX0VFIltBZHopXA%253d%253d; pt_key=【你復制的pt_key的值】; pt_pin=【你復制的pt_pin的值】; pwdt_id=jd_505bacd333f6b; sid=1b2c8b7ce820c4188f048e689bf58c8w; visitkey=36446698972455355"
}
response = requests.post(url=url, headers=headers)
print(response.text)
運行一下腳本,看一下效果,這里我已經執行過一遍了,所以提示已簽到過了
思考
看完之后,感覺好像沒啥用啊,我還要運行一遍代碼再能簽到,不是和手機APP上點簽到一樣嗎。
這里只要把這段邏輯配置成定時任務,每天固定一個時間點執行,就能自動簽到了,只要注意Cookie失效的時候,重新獲取一遍pt_pin和pt_key就是了。
因為博主對Python還不熟,所以用Java寫了完整的定時任務,關注公眾號:福音同學,公眾號內回復 京豆
即可獲取。