Skip to content

Commit a697fd4

Browse files
committed
no message
1 parent 9db05e8 commit a697fd4

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed

moumoubaimifan/jd/jdpc.py

+133
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
import requests
2+
import random
3+
import time
4+
import os
5+
import json
6+
7+
from PIL import Image
8+
9+
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
10+
11+
session = requests.session()
12+
13+
14+
def show_QRcode():
15+
url = 'https://qr.m.jd.com/show'
16+
params = {
17+
'appid': 133,
18+
'size': 147,
19+
't': str(int(time.time() * 1000)),
20+
}
21+
headers = {
22+
'User-Agent': user_agent,
23+
'Referer': 'https://passport.jd.com/new/login.aspx',
24+
}
25+
resp = session.get(url=url, headers=headers, params=params)
26+
27+
QRcode_path = 'QRcode.png'
28+
with open(QRcode_path, 'wb') as f:
29+
for chunk in resp.iter_content(chunk_size=1024):
30+
f.write(chunk)
31+
32+
QRcode = Image.open(QRcode_path)
33+
QRcode.show()
34+
35+
def check_QRcode():
36+
37+
url = 'https://qr.m.jd.com/check'
38+
params = {
39+
'appid': '133',
40+
'callback': 'jQuery{}'.format(random.randint(1000000, 9999999)),
41+
'token': session.cookies.get('wlfstk_smdl'),
42+
'_': str(int(time.time() * 1000)),
43+
}
44+
headers = {
45+
'User-Agent': user_agent,
46+
'Referer': 'https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F',
47+
}
48+
resp = session.get(url=url, headers=headers, params=params)
49+
resp_json = parse_json(resp.text)
50+
51+
if 'ticket' in resp_json:
52+
print(resp_json)
53+
return resp_json['ticket']
54+
else:
55+
print(resp_json['msg'])
56+
print('请刷新JD登录二维码!')
57+
os._exit(0)
58+
59+
60+
def validation_QRcode(ticket):
61+
62+
url = 'https://passport.jd.com/uc/qrCodeTicketValidation'
63+
headers = {
64+
'User-Agent': user_agent,
65+
'Referer': 'https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F',
66+
}
67+
params={
68+
't': ticket
69+
}
70+
resp = session.get(url=url, headers=headers, params=params)
71+
print(resp.text)
72+
73+
74+
def parse_json(str):
75+
return json.loads(str[str.find('{'):str.rfind('}') + 1])
76+
77+
78+
def coupon_list():
79+
url = 'https://a.jd.com/indexAjax/getCouponListByCatalogId.html'
80+
headers = {
81+
'User-Agent': user_agent,
82+
'Referer': 'https://a.jd.com/?cateId=118',
83+
}
84+
couponList = []
85+
for i in range(1, 20):
86+
params = {
87+
'callback': 'jQuery{}'.format(random.randint(1000000, 9999999)),
88+
'catalogId': '118',
89+
'page': str(i),
90+
'pageSize': '9',
91+
'_': str(int(time.time() * 1000)),
92+
}
93+
try:
94+
resp = session.get(url=url, params=params, headers=headers)
95+
json = parse_json(resp.text)
96+
couponList.extend(json['couponList'])
97+
if json['totalNum'] == 1:
98+
continue
99+
else:
100+
break
101+
except Exception:
102+
print('出错了!')
103+
return couponList
104+
105+
106+
def get_coupon(coupon_list):
107+
url = 'https://a.jd.com/indexAjax/getCoupon.html'
108+
headers = {
109+
'User-Agent': user_agent,
110+
'Referer': 'https://a.jd.com/?cateId=118',
111+
}
112+
for coupon in coupon_list:
113+
params = {
114+
'callback': 'jQuery{}'.format(random.randint(1000000, 9999999)),
115+
'key': coupon['key'],
116+
'type': '1',
117+
'_': str(int(time.time() * 1000)),
118+
}
119+
time.sleep(1)
120+
resp = session.get(url=url, params=params, headers=headers)
121+
print(resp.text)
122+
123+
124+
125+
if __name__ == '__main__':
126+
show_QRcode()
127+
128+
time.sleep(10)
129+
130+
ticket = check_QRcode()
131+
validation_QRcode(ticket)
132+
coupon_list = coupon_list()
133+
get_coupon(coupon_list)

0 commit comments

Comments
 (0)