又到了周末的时间,每次周末都得整点花里胡哨的东西玩,今天就来说说怎么用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写了完整的定时任务,关注公众号:福音同学,公众号内回复 京豆
即可获取。