Files
F6--/张阳脚本/竞品系统数据导出/京东云修客户信息排序.ipynb
T
2026-01-30 11:28:35 +08:00

117 lines
5.8 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-05-30T01:21:11.014130Z",
"start_time": "2025-05-30T01:01:24.119875Z"
}
},
"source": [
"import requests\n",
"import json\n",
"import time\n",
"import pandas as pd\n",
"from tqdm import tqdm\n",
"\n",
"headers = {\n",
" \"Cookie\": \"__jdv=195278372%7Cdirect%7C-%7Cnone%7C-%7C1748480028960; mba_muid=1748480028960904285855; QRCodeKey=AAEAIN1BeBof-i4Zw8hvr-aG7CQu5u87gNXaRTDWEIyObJwJ; wlfstk_smdl=0zlr8a4uh5xi9n7wneoe7f1dtg3gmf4m; flash=3_Ph0N57CFsjJX7qJrf3jFhR2KtGaskdDyz0uaOe7M5cv8HXomGD7XAONhQEW4AdogODQVOMcvo7cAhnCtVRgeA_KEbDojTjBLROXbXXsH4dVDIUml_To2aRXuy7ifznU4E7gFgs6ztENk6VvYDzHM4XM4tzN8JA6ZinxiQEuhb7shI3tgFrbSG3LyTAyh3c1PHbU7; pin=%E5%85%BB%E8%BD%A6%E9%A9%BF%E6%A0%88%E4%B8%87%E6%B1%9F%E5%BA%97; unick=3x31uabda90cvn; thor=5EE400E7603F4FFFA56C15D1CDCE1ED2D696342F9B7D93B6828A585300D929E228AC00481EB0071D930EDA11CE005878BA99AE6501BFB4FCD664ED18C983B851317700EABE9412AAD1B2EFDBEE79D68BA7935E2CFA41531DDA2495DF925EEB38DE0E6D565E0AEA561263D27E127BA1C5A5A265A54FF2134462E28C15625847DAEA9838BA7CC226743C3AF780F4B4B1BD; light_key=AASBKE7rOxgWQziEhC_QY6yatak8Gj94PuPDJNKicqqnLhtyKqgNkVJhNXp4h31u--XoD8uMz5ZWORXUv1A4IKSjEqNTig; JD_UUID=d86ad331-9452-4965-81c4-871c9f622c8b; yunxiupin=%E5%85%BB%E8%BD%A6%E9%A9%BF%E6%A0%88%E4%B8%87%E6%B1%9F%E5%BA%97; bmall_id=8C9AFA76560E12B6116B47CE33B5ADF63E6941F825D9D52F317A543390F95D20700ADD2EE1D0F1C4F46929C1CA9A55D64D024C865A5C48C5E46BAEDB85601A47B4EFD44CB97863068AB4C1C1C9C0E633705B049FDACD382DDB3EA269F0E2D8DA63F3B5C6443C3B2DB12D9130CF7E5685; UUID=3b5708c5-aae1-4b91-83bd-606bb5a4c08d; SESSION_USER_NAME=%E7%8E%8B%E6%AD%A6%E6%96%8C; mba_sid=17485072577312005509178.0; 3AB9D23F7A4B3C9B=U3G6MJASLF6FOBCVPW5GOBPXFAUBK6VWDNALTH6W6EYUEBTPGQXLGP6A4P5CTRP5C6TQMFZLHYTECKB72KSKAPDORM; __jda=241039512.1748480028960904285855.1748480028.1748489963.1748495804.3; __jdc=241039512; __jdb=241039512.135.1748480028960904285855|3.1748495804\",\n",
" \"Referer\": \"https://jch1.yunxiu.com/legend/account?refer=float-menu\",\n",
" \"Sec-Ch-Ua\": '\"Not=A?Brand\";v=\"99\", \"Chromium\";v=\"118\"',\n",
" \"Sec-Ch-Ua-Mobile\": \"?0\",\n",
" \"Sec-Ch-Ua-Platform\": '\"Windows\"',\n",
" \"Sec-Fetch-Dest\": \"empty\",\n",
" \"Sec-Fetch-Mode\": \"cors\",\n",
" \"Sec-Fetch-Site\": \"same-origin\",\n",
" \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.1.2 Safari/537.36 JiSu/118.0.1.2\",\n",
" \"X-Requested-With\": \"XMLHttpRequest\"\n",
"}\n",
"\n",
"all_data = []\n",
"number = 1748507284349\n",
"page = 1\n",
"max_retries = 5 # 最大重试次数\n",
"backoff_factor = 1 # 指数退避因子\n",
"# sort = \"sortByCardNumberType,ASC\"\n",
"# sort = \"sortByCardNumberType,DESC\"\n",
"# sort = \"sortByTotalBalanceType,ASC\"\n",
"sort = \"sortByTotalBalanceType,DESC\"\n",
"for page in tqdm(range(1,1001)):\n",
" url = f\"https://jch1.yunxiu.com/legend/account/search?page={page}&sort={sort}&_={number}\" # 注意url\n",
" data = f'page={page}&_={number}'\n",
"\n",
" attempt = 0\n",
" while attempt < max_retries:\n",
" try:\n",
" response = requests.get(url=url, headers=headers, data=data)\n",
" response.raise_for_status()\n",
" # print(response.json())\n",
" # break# 如果响应状态码不是200,则抛出HTTPError异常\n",
" res = response.json().get(\"data\", {}).get(\"content\", [])\n",
"\n",
" for item in res:\n",
" base_info = {k: v for k, v in item.items() if k != \"licenseList\"}\n",
" if \"licenseList\" in item and isinstance(item[\"licenseList\"], list):\n",
" for new_item in item[\"licenseList\"]:\n",
" row = base_info.copy()\n",
" row.update({\"car\": new_item})\n",
" all_data.append(row)\n",
" else:\n",
" # 如果没有licenseList或者它不是列表,则直接添加基本信息\n",
" all_data.append(base_info)\n",
"\n",
" break # 成功后退出重试循环\n",
" except requests.exceptions.RequestException as e:\n",
" print(f\"第{page}页请求失败: {e}\")\n",
" if attempt < max_retries - 1:\n",
" sleep_time = backoff_factor * (2 ** attempt) # 计算等待时间\n",
" print(f\"准备第{attempt + 1}次重试,等待{sleep_time}秒...\")\n",
" time.sleep(sleep_time) # 等待一段时间后重试\n",
" else:\n",
" print(f\"达到最大重试次数,跳过第{page}页\")\n",
" attempt += 1\n",
"\n",
" number += 1\n",
" time.sleep(1)\n",
"\n",
"df1 = pd.DataFrame(all_data)\n",
"df1.to_excel(fr\"D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\京东云修数据导出-养车驿栈万江店{sort}.xlsx\")\n"
],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 1000/1000 [19:45<00:00, 1.19s/it]\n"
]
}
],
"execution_count": 4
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}