|
|

楼主 |
发表于 2024-7-5 17:09:32
|
显示全部楼层
generate_query_id 函数还需要更新一下
以下有什么规律? 还是可以从网页源代码解析出来?
KDQUERY1720167631718 查询时间 2024/07/05 16:20
KDQUERY1720167694333 查询时间 2024/07/05 16:21
KDQUERY1720167806456 查询时间 2024/07/05 16:23
KDQUERY1720167856116 查询时间 2024/07/05 16:24
KDQUERY1720167857068 查询时间 2024/07/05 16:24
KDQUERY1720167899105 查询时间 2024/07/05 16:24
- import logging
- import time
- import random
- from fake_useragent import UserAgent
- import json
- import requests
- # 配置日志
- logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
- def generate_query_id():
- timestamp = int(time.time())
- custom_time_code = str(timestamp)[-6:] # 截取时间戳的最后6位作为时间编码
-
- # 生成随机序列号
- sequence_number = str(random.randint(10000, 99999)) # 生成5位数的随机序列号
-
- # 拼接查询编号
- query_id = f"KDQUERY{custom_time_code}{sequence_number}"
-
- return query_id
- def get_express_type(exp_name):
- exp_dic = {
- "申通": "shentong",
- "圆通": "yuantong",
- "韵达": "yunda",
- "百世": "huitongkuaidi",
- "优速": "youshuwuliu",
- "中通": "zhongtong",
- "EMS": "ems",
- "顺丰": "shunfeng",
- "天天": "tiantian",
- "宅急送": "zhaijisong",
- "中国邮政": "youzhengguonei",
- "全峰": "quanfengkuaidi",
- "速尔": "suer",
- "国通": "guotongkuaidi"
- }
- return exp_dic[exp_name]
- # 快递查询
- def express_query(exp_name,exp_number):
- headers = {
- "User-Agent": UserAgent().random,
- "Referer": "https://www.kuaidi.com/"
- }
- # 解析HTML
- query_id = generate_query_id()
- query_url=f"https://www.kuaidi.com/index-ajaxselectcourierinfo-{exp_number}-{get_express_type(exp_name)}-{query_id}.html"
- print(query_url)
-
- html = requests.post(query_url, headers=headers)
- j_text = json.loads(html.text)
- if j_text['success']:
- datas=j_text['data']
- for data in datas:
- print(f"{data['time']}, {data['context']}")
- if __name__ == "__main__":
- exp_name="圆通"
- exp_number = 'YT1870762630265'
- express_query(exp_name,exp_number)
-
复制代码
|
|