代码拉取完成,页面将自动刷新
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
File: jd_shopCollectGift.py(店铺会员礼包-监控脚本)
Author: HarbourJ
Date: 2022/9/2 12:00
TG: https://t.me/HarbourToulu
TgChat: https://t.me/HarbourSailing
cron: 1 1 1 1 1 1
new Env('店铺会员礼包-JK');
ActivityEntry: https://shop.m.jd.com/shop/home?shopId=1000003443
Description: 部分账号开卡后无法自动领取开卡奖励,不自动开卡,仅领取已开卡的会员礼包
变量export jd_shopCollectGiftId="1000003443" 变量为店铺venderId
"""
import requests, sys, os, re, time
from datetime import datetime
from functools import partial
print = partial(print, flush=True)
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
from urllib.parse import quote_plus, unquote_plus
try:
from jd_sign import *
except ImportError as e:
print(e)
if "No module" in str(e):
print("请先运行Faker库依赖一键安装脚本(jd_check_dependent.py),安装jd_sign.so依赖")
try:
from jdCookie import get_cookies
getCk = get_cookies()
except:
print("请先下载依赖脚本,\n下载链接: https://raw.githubusercontent.com/HarbourJ/HarbourToulu/main/jdCookie.py")
sys.exit(3)
venderId = os.environ.get("jd_shopCollectGiftId") if os.environ.get("jd_shopCollectGiftId") else ""
if not venderId:
print("⚠️未发现有效活动变量,退出程序!")
sys.exit()
def collectGift(venderId, activityId, activityType, cookie):
url = f"https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=collectGift&body=%7B%22venderId%22%3A%22{venderId}%22%2C%22activityId%22%3A{activityId}%2C%22activityType%22%3A{activityType}%7D&clientVersion=9.2.0&client=H5&uuid=88888"
headers = {
'Host': 'api.m.jd.com',
'Accept': '*/*',
'Connection': 'keep-alive',
'Cookie': cookie,
'User-Agent': ua,
'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
'Referer': 'https://shopmember.m.jd.com/',
'Accept-Encoding': 'gzip, deflate, br'
}
response = requests.request("GET", url, headers=headers)
res = response.json()
if res['success']:
return res['message']
else:
print(res)
def getFansDetail(venderId, cookie):
url = f"https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getFansFuseMemberDetail&clientVersion=9.2.0&client=H5&uuid=88888&body=%7B%22venderId%22%3A%22{venderId}%22%2C%22channel%22%3A406%2C%22queryVersion%22%3A%2210.5.2%22%7D"
headers = {
'Host': 'api.m.jd.com',
'Accept': '*/*',
'Connection': 'keep-alive',
'Cookie': cookie,
'User-Agent': ua,
'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
'Referer': 'https://shopmember.m.jd.com/',
'Accept-Encoding': 'gzip, deflate, br'
}
response = requests.request("GET", url, headers=headers)
res = response.json()
if res['success']:
brandName = res['data'][0]['cardInfo']['brandName']
if 'newGiftList' in str(res) and res['data'][0]['newGiftList']:
activityId = res['data'][0]['newGiftList'][0]['activityId']
activityType = res['data'][0]['newGiftList'][0]['activityType']
prizeTypeName = res['data'][0]['newGiftList'][0]['prizeTypeName']
discount = res['data'][0]['newGiftList'][0]['discount']
return activityId, activityType, discount, prizeTypeName, brandName
else:
print(f"{brandName} 未发现店铺礼包💨")
if __name__ == '__main__':
try:
cks = getCk
if not cks:
sys.exit()
except:
print("未获取到有效COOKIE,退出程序!")
sys.exit()
num = 0
for cookie in cks[:]:
num += 1
global ua
ua = userAgent()
try:
pt_pin = re.compile(r'pt_pin=(.*?);').findall(cookie)[0]
pt_pin = unquote_plus(pt_pin)
except IndexError:
pt_pin = f'用户{num}'
print(f'\n******开始【京东账号{num}】{pt_pin} *********\n')
print(datetime.now())
try:
getFD = getFansDetail(venderId, cookie)
if getFD:
activityId = getFD[0]
activityType = getFD[1]
discount = getFD[2]
prizeTypeName = getFD[3]
brandName = getFD[4]
cg = collectGift(venderId, activityId, activityType, cookie)
if cg:
if "领取成功" in cg:
print(f"🎉🎉🎉{brandName} {discount}{prizeTypeName} {cg}")
else:
print(brandName, cg)
except:
continue
time.sleep(0.5)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。