-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathdemo.py
64 lines (54 loc) · 1.77 KB
/
demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# _*_ coding: utf-8 _*_
# @Date: 10:50 上午
# @File: demo.py
# @Author: liyf
import execjs
import requests
from loguru import logger
headers = {
"Accept": "*/*",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cache-Control": "no-cache",
"Connection": "keep-alive",
"Origin": "https://m.ehsy.com",
"Pragma": "no-cache",
"Referer": "https://m.ehsy.com/",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-site",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"content-type": "application/x-www-form-urlencoded",
}
url = "https://m2.ehsy.com/pb/product/search/filter"
f = open('demo.js', 'r')
js_str = f.readlines()
ctx = execjs.compile(''.join(js_str))
def get_results(start):
data = {
"search": "{'catId':'16474','filterFieldsValues':{},'filters':{}}",
"flag": "true",
"sortType": "0",
"start": start,
"rows": "20",
"cityId": "321",
"token": "",
"createFrom": "m"
}
ehsy_verify = ctx.call('p')
logger.info(f'ehsy_verify: {ehsy_verify}')
headers['ehsy-verify'] = ehsy_verify
response = requests.post(url, headers=headers, data=data)
return response.json()
def main():
for start in range(0, 200, 20):
results = get_results(start)
data_list = results['data']['queryPage']['data']
for data in data_list:
title = data['productName']
brand = data['brandName']
sku_code = data['skuCode']
sale = data['salePrice']
print(f'名称: {title}\n品牌型号: {brand}\n订货号: {sku_code}\n含税: {sale}')
print('=====' * 15)
if __name__ == '__main__':
main()