import requests import pandas as pd import time from tqdm import tqdm cookies = { 'memberSESSIONID': '485a36b9-eb05-4f25-806c-ddea074cb6a2', 'erpLanguage': 'zh-CN', 'tmall': 'false', 'Hm_lvt_25f5e7a3a5dbb293d7dd35d5f1be8d0a': '1775553704,1775799422,1776043595,1776153876', 'HMACCOUNT': 'A6A0585E8C70051D', 'prodOrg': '11240984669918128522', 'unp': '15851362811188895763', 'un': '15851362811188895763', '_up': '-NillNN-qyBEJ--t3vnSknvoOF53yPCOts8N0no-Uu9VX_TGoZrQjaZJ9Q3d-WrAAGgt60MgQHajHWBHMKKxj0CuWypi1JgKCFP1EPEk-HbqE_UQqY4i0wEO9vFRv-ZNHu3M-GTc1p2wFnGqpuxUiOMSmF_GORVsrEj9nR66kMm3MhA.', 'sensorsdata2015jssdkcross': '%7B%22distinct_id%22%3A%2215851362811188895763%22%2C%22first_id%22%3A%2219b6df76a22f46-04a98afdd2a11d8-4c657b58-1327104-19b6df76a2312c7%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219b6df76a22f46-04a98afdd2a11d8-4c657b58-1327104-19b6df76a2312c7%22%7D', 'Hm_lpvt_25f5e7a3a5dbb293d7dd35d5f1be8d0a': '1776405066', } headers = { 'accept': 'application/json, text/plain, */*', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', 'content-type': 'application/json;charset=UTF-8', 'origin': 'https://yunxiu.f6car.cn', 'priority': 'u=1, i', 'referer': 'https://yunxiu.f6car.cn/erp/view/index.html', 'sec-ch-ua': '"Microsoft Edge";v="147", "Not.A/Brand";v="8", "Chromium";v="147"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', 'traceparent': '00-83110f5326614e2db80da5c48ab36d5d-ce4bdbb226a3286a-01', 'tracestate': 'rum=v2&browser&dz2uw0c5ay@e5930ea8eb782ae&9134c88bc6224ae4a4167c07dc0ad82e&uid_nli6u6uor4pqvx0f', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Edg/147.0.0.0', 'x-requested-with': 'XMLHttpRequest', # 'cookie': 'memberSESSIONID=485a36b9-eb05-4f25-806c-ddea074cb6a2; erpLanguage=zh-CN; tmall=false; Hm_lvt_25f5e7a3a5dbb293d7dd35d5f1be8d0a=1775553704,1775799422,1776043595,1776153876; HMACCOUNT=A6A0585E8C70051D; prodOrg=11240984669918128522; unp=15851362811188895763; un=15851362811188895763; _up=-NillNN-qyBEJ--t3vnSknvoOF53yPCOts8N0no-Uu9VX_TGoZrQjaZJ9Q3d-WrAAGgt60MgQHajHWBHMKKxj0CuWypi1JgKCFP1EPEk-HbqE_UQqY4i0wEO9vFRv-ZNHu3M-GTc1p2wFnGqpuxUiOMSmF_GORVsrEj9nR66kMm3MhA.; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2215851362811188895763%22%2C%22first_id%22%3A%2219b6df76a22f46-04a98afdd2a11d8-4c657b58-1327104-19b6df76a2312c7%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219b6df76a22f46-04a98afdd2a11d8-4c657b58-1327104-19b6df76a2312c7%22%7D; Hm_lpvt_25f5e7a3a5dbb293d7dd35d5f1be8d0a=1776405066', } url = 'https://yunxiu.f6car.cn/member/car/carListForPermission' source_excel_path = r"D:\Idea Project\F6+宜搭+其它(1)\张阳脚本\文件输出\车辆信息.xlsx" source_sheet_name = "Sheet3" output_path = r"D:\Idea Project\F6+宜搭+其它(1)\张阳脚本\文件输出\车辆信息_按车牌导出.xlsx" df = pd.read_excel(source_excel_path, sheet_name=source_sheet_name) all_data = [] for _, row in tqdm(df.iterrows(), total=len(df)): car_number = str(row.get('车牌号', '')).strip() if not car_number or car_number.lower() == 'nan': continue page_no = 1 matched = False while True: json_data = { 'keyWord': car_number, 'pageSize': 100, 'pageNo': page_no, } response = requests.post( url, cookies=cookies, headers=headers, json=json_data, timeout=30, ) data = response.json() data_block = (data.get('data') or {}) items = (data_block.get('data') or []) for item in items: tm_car = item.get('tmCarInfo') or {} tm_customer = item.get('tmCustomerInfo') or {} current_car_number = f"{tm_car.get('carPrefix', '')}{tm_car.get('carNo', '')}" if current_car_number == car_number: car_id = tm_car.get('pkId') customer_id = tm_customer.get('pkId') all_data.append([car_id, customer_id, current_car_number]) matched = True break if matched: break total = data_block.get('total') or 0 if page_no * 100 >= int(total): break page_no += 1 time.sleep(0.3) if not matched: all_data.append([None, None, car_number]) time.sleep(2) result_df = pd.DataFrame(all_data, columns=['carId', 'customerId', 'car_number']) result_df.to_excel(output_path, index=False) print("已保存:", str(output_path))