Files
2026-01-30 11:28:35 +08:00

731 lines
54 KiB
Plaintext

{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "客户信息导出",
"id": "a10af68ca00de50a"
},
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2026-01-28T06:27:39.309261100Z",
"start_time": "2026-01-28T06:27:31.811575700Z"
}
},
"source": [
"import requests\n",
"import json\n",
"import time\n",
"import pandas as pd\n",
"from tqdm import tqdm\n",
"\n",
"import requests\n",
"\n",
"cookies = {\n",
" '__jdv': '241039512|direct|-|none|-|1769580195196',\n",
" 'mba_muid': '17695801951961847696270',\n",
" 'mba_sid': '1769580378119515622883.0',\n",
" 'QRCodeKey': 'AAEAIGlfy0S9IVwOVAfE3NXgBILRP8R2qpHAikvosD3cyvar',\n",
" 'wlfstk_smdl': 'drd3j1dlvwjz7o96orgqco4keigo6ipj',\n",
" 'pin': '%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8',\n",
" 'unick': 's2v2tk1w4w8eb9',\n",
" 'yunxiupin': '%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8',\n",
" 'bmall_id': '499220987560FEF36C9FB4C092693FFC98D6D74FB85924A6DC3E030ADD3477238C68C7B8E10ED66898B6EBEB4562ED893FBF19E4CD0030FECE3218317F39A2F5FC9FF25A11561368D02C95564D247AC2A151A086B1074D5EE362C7CB1BA34EC79B50B3252535972791A084C5D010158EF4B5C1EADC2808FFF3EB992EF34A9D14',\n",
" 'UUID': '7c069d6f-2724-4008-b308-09f436240035',\n",
" 'SESSION_USER_NAME': '%E6%9F%A5%E4%BA%AE',\n",
" 'flash': '3_bBBCg0-OBy68xAANqduCSaKWV_6DKpxvObl29hEy-5Il0taBIimdGJfimCMZHKH-CUR09cTQwjAyGRKP9z9jHkm9UrWP2nTOg38vb68OEMqiiwdZRg1AqxMtUmDSWBQdVhGg5qQSbO5p1eyeBPlu7Htsgtf_TMouEaoqlijt7PqsLs4yBBM8Alki49TorJwr9E6mcmF96X-2O-E6',\n",
" 'thor': '51C732866E8A756A4ED8B4738163D4C059D9063322E05745BA0D815A80FEBE3D550B447E8BB3C99207EE02D994108998DE070A571A758BED83B7535090CB6C2DF853F8994511D1708463D0C16274A620668FCE84D3B708BA56633C46432FABC8B4DA7688141595BA1C45C419160C151A638E6A118D22DA606EE420BE383B9D53FB842C2C90A6454E4CFED4E3A63A8ED5',\n",
" 'light_key': 'AASBKE7rOxgWQziEhC_QY6yaLIBQgOT1dxVmsPRjRIB9ndtR9Aslstb1iQBYYZyMvLEJNsNDL52e7UA1dFCeHNIVWAseFg',\n",
" 'JD_UUID': 'b9441bd1-a782-4d34-b2af-47b6f1e89bc6',\n",
" '3AB9D23F7A4B3CSS': 'jdd03XH7UJPD6AWWSVFN6XP6T23OSWBA235SAMFFYPEW3JTTJRTT4TQTZLIAKR47DQ26GKGT266NM6WGBCEKT7R6RL2K34IAAAAM4ANDUGQYAAAAACSHCLFATJTAJKMX',\n",
" '_gia_d': '1',\n",
" 'sdtoken': 'AAbEsBpEIOVjqTAKCQtvQu17FLUpUb4CM0QtRGo9_y1DbK8h44YEOS2UiemwosOOgSgqPwHoDiJho0E69o2zgRTqSGouwgzZW2ByDMgJdY2S_IVvi4uyNneMFom6TCFDsAUG_C0BzQYsVWWU',\n",
" '__jda': '200816309.17695801951961847696270.1769580195.1769580195.1769580195.1',\n",
" '__jdc': '200816309',\n",
" '3AB9D23F7A4B3C9B': 'KPOAZ5CBYQXJ25JOSSXGBQDYYOVGX7EMTPWFWDGVZ3KWTLNZU45HHPQ4MXYSIO37IV72PLAND3VYJH2ZOLD6LFWBDA',\n",
" '__jdb': '200816309.53.17695801951961847696270|1.1769580195',\n",
"}\n",
"\n",
"headers = {\n",
" 'accept': '*/*',\n",
" 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" # 'content-length': '0',\n",
" 'origin': 'https://jch.yunxiu.com',\n",
" 'priority': 'u=1, i',\n",
" 'referer': 'https://jch.yunxiu.com/',\n",
" 'sec-ch-ua': '\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\", \"Microsoft Edge\";v=\"144\"',\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-site',\n",
" 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0',\n",
" 'x-requested-with': 'XMLHttpRequest',\n",
" # 'cookie': '__jdv=241039512|direct|-|none|-|1769580195196; mba_muid=17695801951961847696270; mba_sid=1769580378119515622883.0; QRCodeKey=AAEAIGlfy0S9IVwOVAfE3NXgBILRP8R2qpHAikvosD3cyvar; wlfstk_smdl=drd3j1dlvwjz7o96orgqco4keigo6ipj; pin=%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8; unick=s2v2tk1w4w8eb9; yunxiupin=%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8; bmall_id=499220987560FEF36C9FB4C092693FFC98D6D74FB85924A6DC3E030ADD3477238C68C7B8E10ED66898B6EBEB4562ED893FBF19E4CD0030FECE3218317F39A2F5FC9FF25A11561368D02C95564D247AC2A151A086B1074D5EE362C7CB1BA34EC79B50B3252535972791A084C5D010158EF4B5C1EADC2808FFF3EB992EF34A9D14; UUID=7c069d6f-2724-4008-b308-09f436240035; SESSION_USER_NAME=%E6%9F%A5%E4%BA%AE; flash=3_bBBCg0-OBy68xAANqduCSaKWV_6DKpxvObl29hEy-5Il0taBIimdGJfimCMZHKH-CUR09cTQwjAyGRKP9z9jHkm9UrWP2nTOg38vb68OEMqiiwdZRg1AqxMtUmDSWBQdVhGg5qQSbO5p1eyeBPlu7Htsgtf_TMouEaoqlijt7PqsLs4yBBM8Alki49TorJwr9E6mcmF96X-2O-E6; thor=51C732866E8A756A4ED8B4738163D4C059D9063322E05745BA0D815A80FEBE3D550B447E8BB3C99207EE02D994108998DE070A571A758BED83B7535090CB6C2DF853F8994511D1708463D0C16274A620668FCE84D3B708BA56633C46432FABC8B4DA7688141595BA1C45C419160C151A638E6A118D22DA606EE420BE383B9D53FB842C2C90A6454E4CFED4E3A63A8ED5; light_key=AASBKE7rOxgWQziEhC_QY6yaLIBQgOT1dxVmsPRjRIB9ndtR9Aslstb1iQBYYZyMvLEJNsNDL52e7UA1dFCeHNIVWAseFg; JD_UUID=b9441bd1-a782-4d34-b2af-47b6f1e89bc6; 3AB9D23F7A4B3CSS=jdd03XH7UJPD6AWWSVFN6XP6T23OSWBA235SAMFFYPEW3JTTJRTT4TQTZLIAKR47DQ26GKGT266NM6WGBCEKT7R6RL2K34IAAAAM4ANDUGQYAAAAACSHCLFATJTAJKMX; _gia_d=1; sdtoken=AAbEsBpEIOVjqTAKCQtvQu17FLUpUb4CM0QtRGo9_y1DbK8h44YEOS2UiemwosOOgSgqPwHoDiJho0E69o2zgRTqSGouwgzZW2ByDMgJdY2S_IVvi4uyNneMFom6TCFDsAUG_C0BzQYsVWWU; __jda=200816309.17695801951961847696270.1769580195.1769580195.1769580195.1; __jdc=200816309; 3AB9D23F7A4B3C9B=KPOAZ5CBYQXJ25JOSSXGBQDYYOVGX7EMTPWFWDGVZ3KWTLNZU45HHPQ4MXYSIO37IV72PLAND3VYJH2ZOLD6LFWBDA; __jdb=200816309.53.17695801951961847696270|1.1769580195',\n",
"}\n",
"\n",
"\n",
"\n",
"all_data = []\n",
"number = 1748507284349\n",
"page = 1\n",
"max_retries = 5 # 最大重试次数\n",
"backoff_factor = 1 # 指数退避因子\n",
"\n",
"for page in tqdm(range(1,2)):\n",
" url = f\"https://jch1.yunxiu.com/legend/account/search?page={page}&_={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(r\"D:\\Idea Project\\F6+宜搭+其它(1)\\张阳脚本\\文件输出\\京东云修数据导出-养车驿栈万江店.xlsx\")\n"
],
"outputs": [
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
"\u001B[31mKeyboardInterrupt\u001B[39m Traceback (most recent call last)",
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[1]\u001B[39m\u001B[32m, line 67\u001B[39m\n\u001B[32m 65\u001B[39m \u001B[38;5;28;01mwhile\u001B[39;00m attempt < max_retries:\n\u001B[32m 66\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m---> \u001B[39m\u001B[32m67\u001B[39m response = \u001B[43mrequests\u001B[49m\u001B[43m.\u001B[49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[43murl\u001B[49m\u001B[43m=\u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m=\u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mdata\u001B[49m\u001B[43m=\u001B[49m\u001B[43mdata\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 68\u001B[39m response.raise_for_status() \n\u001B[32m 69\u001B[39m \u001B[38;5;66;03m# print(response.json())\u001B[39;00m\n\u001B[32m 70\u001B[39m \u001B[38;5;66;03m# break# 如果响应状态码不是200,则抛出HTTPError异常\u001B[39;00m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\api.py:73\u001B[39m, in \u001B[36mget\u001B[39m\u001B[34m(url, params, **kwargs)\u001B[39m\n\u001B[32m 62\u001B[39m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34mget\u001B[39m(url, params=\u001B[38;5;28;01mNone\u001B[39;00m, **kwargs):\n\u001B[32m 63\u001B[39m \u001B[38;5;250m \u001B[39m\u001B[33mr\u001B[39m\u001B[33;03m\"\"\"Sends a GET request.\u001B[39;00m\n\u001B[32m 64\u001B[39m \n\u001B[32m 65\u001B[39m \u001B[33;03m :param url: URL for the new :class:`Request` object.\u001B[39;00m\n\u001B[32m (...)\u001B[39m\u001B[32m 70\u001B[39m \u001B[33;03m :rtype: requests.Response\u001B[39;00m\n\u001B[32m 71\u001B[39m \u001B[33;03m \"\"\"\u001B[39;00m\n\u001B[32m---> \u001B[39m\u001B[32m73\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mrequest\u001B[49m\u001B[43m(\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mget\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mparams\u001B[49m\u001B[43m=\u001B[49m\u001B[43mparams\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\api.py:59\u001B[39m, in \u001B[36mrequest\u001B[39m\u001B[34m(method, url, **kwargs)\u001B[39m\n\u001B[32m 55\u001B[39m \u001B[38;5;66;03m# By using the 'with' statement we are sure the session is closed, thus we\u001B[39;00m\n\u001B[32m 56\u001B[39m \u001B[38;5;66;03m# avoid leaving sockets open which can trigger a ResourceWarning in some\u001B[39;00m\n\u001B[32m 57\u001B[39m \u001B[38;5;66;03m# cases, and look like a memory leak in others.\u001B[39;00m\n\u001B[32m 58\u001B[39m \u001B[38;5;28;01mwith\u001B[39;00m sessions.Session() \u001B[38;5;28;01mas\u001B[39;00m session:\n\u001B[32m---> \u001B[39m\u001B[32m59\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43msession\u001B[49m\u001B[43m.\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m(\u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m=\u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m=\u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\sessions.py:589\u001B[39m, in \u001B[36mSession.request\u001B[39m\u001B[34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001B[39m\n\u001B[32m 584\u001B[39m send_kwargs = {\n\u001B[32m 585\u001B[39m \u001B[33m\"\u001B[39m\u001B[33mtimeout\u001B[39m\u001B[33m\"\u001B[39m: timeout,\n\u001B[32m 586\u001B[39m \u001B[33m\"\u001B[39m\u001B[33mallow_redirects\u001B[39m\u001B[33m\"\u001B[39m: allow_redirects,\n\u001B[32m 587\u001B[39m }\n\u001B[32m 588\u001B[39m send_kwargs.update(settings)\n\u001B[32m--> \u001B[39m\u001B[32m589\u001B[39m resp = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43msend\u001B[49m\u001B[43m(\u001B[49m\u001B[43mprep\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43msend_kwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 591\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m resp\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\sessions.py:724\u001B[39m, in \u001B[36mSession.send\u001B[39m\u001B[34m(self, request, **kwargs)\u001B[39m\n\u001B[32m 721\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m allow_redirects:\n\u001B[32m 722\u001B[39m \u001B[38;5;66;03m# Redirect resolving generator.\u001B[39;00m\n\u001B[32m 723\u001B[39m gen = \u001B[38;5;28mself\u001B[39m.resolve_redirects(r, request, **kwargs)\n\u001B[32m--> \u001B[39m\u001B[32m724\u001B[39m history = \u001B[43m[\u001B[49m\u001B[43mresp\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mfor\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mresp\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;129;43;01min\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mgen\u001B[49m\u001B[43m]\u001B[49m\n\u001B[32m 725\u001B[39m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[32m 726\u001B[39m history = []\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\sessions.py:265\u001B[39m, in \u001B[36mSessionRedirectMixin.resolve_redirects\u001B[39m\u001B[34m(self, resp, req, stream, timeout, verify, cert, proxies, yield_requests, **adapter_kwargs)\u001B[39m\n\u001B[32m 263\u001B[39m \u001B[38;5;28;01myield\u001B[39;00m req\n\u001B[32m 264\u001B[39m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m265\u001B[39m resp = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43msend\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 266\u001B[39m \u001B[43m \u001B[49m\u001B[43mreq\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 267\u001B[39m \u001B[43m \u001B[49m\u001B[43mstream\u001B[49m\u001B[43m=\u001B[49m\u001B[43mstream\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 268\u001B[39m \u001B[43m \u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m=\u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 269\u001B[39m \u001B[43m \u001B[49m\u001B[43mverify\u001B[49m\u001B[43m=\u001B[49m\u001B[43mverify\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 270\u001B[39m \u001B[43m \u001B[49m\u001B[43mcert\u001B[49m\u001B[43m=\u001B[49m\u001B[43mcert\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 271\u001B[39m \u001B[43m \u001B[49m\u001B[43mproxies\u001B[49m\u001B[43m=\u001B[49m\u001B[43mproxies\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 272\u001B[39m \u001B[43m \u001B[49m\u001B[43mallow_redirects\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 273\u001B[39m \u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43madapter_kwargs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 274\u001B[39m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 276\u001B[39m extract_cookies_to_jar(\u001B[38;5;28mself\u001B[39m.cookies, prepared_request, resp.raw)\n\u001B[32m 278\u001B[39m \u001B[38;5;66;03m# extract redirect url, if any, for the next loop\u001B[39;00m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\sessions.py:703\u001B[39m, in \u001B[36mSession.send\u001B[39m\u001B[34m(self, request, **kwargs)\u001B[39m\n\u001B[32m 700\u001B[39m start = preferred_clock()\n\u001B[32m 702\u001B[39m \u001B[38;5;66;03m# Send the request\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m703\u001B[39m r = \u001B[43madapter\u001B[49m\u001B[43m.\u001B[49m\u001B[43msend\u001B[49m\u001B[43m(\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 705\u001B[39m \u001B[38;5;66;03m# Total elapsed time of the request (approximately)\u001B[39;00m\n\u001B[32m 706\u001B[39m elapsed = preferred_clock() - start\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\requests\\adapters.py:644\u001B[39m, in \u001B[36mHTTPAdapter.send\u001B[39m\u001B[34m(self, request, stream, timeout, verify, cert, proxies)\u001B[39m\n\u001B[32m 641\u001B[39m timeout = TimeoutSauce(connect=timeout, read=timeout)\n\u001B[32m 643\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m644\u001B[39m resp = \u001B[43mconn\u001B[49m\u001B[43m.\u001B[49m\u001B[43murlopen\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 645\u001B[39m \u001B[43m \u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m=\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m.\u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 646\u001B[39m \u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m=\u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 647\u001B[39m \u001B[43m \u001B[49m\u001B[43mbody\u001B[49m\u001B[43m=\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m.\u001B[49m\u001B[43mbody\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 648\u001B[39m \u001B[43m \u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m=\u001B[49m\u001B[43mrequest\u001B[49m\u001B[43m.\u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 649\u001B[39m \u001B[43m \u001B[49m\u001B[43mredirect\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 650\u001B[39m \u001B[43m \u001B[49m\u001B[43massert_same_host\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 651\u001B[39m \u001B[43m \u001B[49m\u001B[43mpreload_content\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 652\u001B[39m \u001B[43m \u001B[49m\u001B[43mdecode_content\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\n\u001B[32m 653\u001B[39m \u001B[43m \u001B[49m\u001B[43mretries\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mmax_retries\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 654\u001B[39m \u001B[43m \u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m=\u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 655\u001B[39m \u001B[43m \u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m=\u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 656\u001B[39m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 658\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m (ProtocolError, \u001B[38;5;167;01mOSError\u001B[39;00m) \u001B[38;5;28;01mas\u001B[39;00m err:\n\u001B[32m 659\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mConnectionError\u001B[39;00m(err, request=request)\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connectionpool.py:787\u001B[39m, in \u001B[36mHTTPConnectionPool.urlopen\u001B[39m\u001B[34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)\u001B[39m\n\u001B[32m 784\u001B[39m response_conn = conn \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m release_conn \u001B[38;5;28;01melse\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[32m 786\u001B[39m \u001B[38;5;66;03m# Make the request on the HTTPConnection object\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m787\u001B[39m response = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_make_request\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 788\u001B[39m \u001B[43m \u001B[49m\u001B[43mconn\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 789\u001B[39m \u001B[43m \u001B[49m\u001B[43mmethod\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 790\u001B[39m \u001B[43m \u001B[49m\u001B[43murl\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 791\u001B[39m \u001B[43m \u001B[49m\u001B[43mtimeout\u001B[49m\u001B[43m=\u001B[49m\u001B[43mtimeout_obj\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 792\u001B[39m \u001B[43m \u001B[49m\u001B[43mbody\u001B[49m\u001B[43m=\u001B[49m\u001B[43mbody\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 793\u001B[39m \u001B[43m \u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m=\u001B[49m\u001B[43mheaders\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 794\u001B[39m \u001B[43m \u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m=\u001B[49m\u001B[43mchunked\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 795\u001B[39m \u001B[43m \u001B[49m\u001B[43mretries\u001B[49m\u001B[43m=\u001B[49m\u001B[43mretries\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 796\u001B[39m \u001B[43m \u001B[49m\u001B[43mresponse_conn\u001B[49m\u001B[43m=\u001B[49m\u001B[43mresponse_conn\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 797\u001B[39m \u001B[43m \u001B[49m\u001B[43mpreload_content\u001B[49m\u001B[43m=\u001B[49m\u001B[43mpreload_content\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 798\u001B[39m \u001B[43m \u001B[49m\u001B[43mdecode_content\u001B[49m\u001B[43m=\u001B[49m\u001B[43mdecode_content\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 799\u001B[39m \u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43mresponse_kw\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 800\u001B[39m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 802\u001B[39m \u001B[38;5;66;03m# Everything went great!\u001B[39;00m\n\u001B[32m 803\u001B[39m clean_exit = \u001B[38;5;28;01mTrue\u001B[39;00m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connectionpool.py:464\u001B[39m, in \u001B[36mHTTPConnectionPool._make_request\u001B[39m\u001B[34m(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)\u001B[39m\n\u001B[32m 461\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m 462\u001B[39m \u001B[38;5;66;03m# Trigger any extra validation we need to do.\u001B[39;00m\n\u001B[32m 463\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m464\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_validate_conn\u001B[49m\u001B[43m(\u001B[49m\u001B[43mconn\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 465\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m (SocketTimeout, BaseSSLError) \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[32m 466\u001B[39m \u001B[38;5;28mself\u001B[39m._raise_timeout(err=e, url=url, timeout_value=conn.timeout)\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connectionpool.py:1093\u001B[39m, in \u001B[36mHTTPSConnectionPool._validate_conn\u001B[39m\u001B[34m(self, conn)\u001B[39m\n\u001B[32m 1091\u001B[39m \u001B[38;5;66;03m# Force connect early to allow us to validate the connection.\u001B[39;00m\n\u001B[32m 1092\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m conn.is_closed:\n\u001B[32m-> \u001B[39m\u001B[32m1093\u001B[39m \u001B[43mconn\u001B[49m\u001B[43m.\u001B[49m\u001B[43mconnect\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 1095\u001B[39m \u001B[38;5;66;03m# TODO revise this, see https://github.com/urllib3/urllib3/issues/2791\u001B[39;00m\n\u001B[32m 1096\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m conn.is_verified \u001B[38;5;129;01mand\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m conn.proxy_is_verified:\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connection.py:796\u001B[39m, in \u001B[36mHTTPSConnection.connect\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 793\u001B[39m \u001B[38;5;66;03m# Remove trailing '.' from fqdn hostnames to allow certificate validation\u001B[39;00m\n\u001B[32m 794\u001B[39m server_hostname_rm_dot = server_hostname.rstrip(\u001B[33m\"\u001B[39m\u001B[33m.\u001B[39m\u001B[33m\"\u001B[39m)\n\u001B[32m--> \u001B[39m\u001B[32m796\u001B[39m sock_and_verified = \u001B[43m_ssl_wrap_socket_and_match_hostname\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 797\u001B[39m \u001B[43m \u001B[49m\u001B[43msock\u001B[49m\u001B[43m=\u001B[49m\u001B[43msock\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 798\u001B[39m \u001B[43m \u001B[49m\u001B[43mcert_reqs\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mcert_reqs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 799\u001B[39m \u001B[43m \u001B[49m\u001B[43mssl_version\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mssl_version\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 800\u001B[39m \u001B[43m \u001B[49m\u001B[43mssl_minimum_version\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mssl_minimum_version\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 801\u001B[39m \u001B[43m \u001B[49m\u001B[43mssl_maximum_version\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mssl_maximum_version\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 802\u001B[39m \u001B[43m \u001B[49m\u001B[43mca_certs\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mca_certs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 803\u001B[39m \u001B[43m \u001B[49m\u001B[43mca_cert_dir\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mca_cert_dir\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 804\u001B[39m \u001B[43m \u001B[49m\u001B[43mca_cert_data\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mca_cert_data\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 805\u001B[39m \u001B[43m \u001B[49m\u001B[43mcert_file\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mcert_file\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 806\u001B[39m \u001B[43m \u001B[49m\u001B[43mkey_file\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mkey_file\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 807\u001B[39m \u001B[43m \u001B[49m\u001B[43mkey_password\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mkey_password\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 808\u001B[39m \u001B[43m \u001B[49m\u001B[43mserver_hostname\u001B[49m\u001B[43m=\u001B[49m\u001B[43mserver_hostname_rm_dot\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 809\u001B[39m \u001B[43m \u001B[49m\u001B[43mssl_context\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mssl_context\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 810\u001B[39m \u001B[43m \u001B[49m\u001B[43mtls_in_tls\u001B[49m\u001B[43m=\u001B[49m\u001B[43mtls_in_tls\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 811\u001B[39m \u001B[43m \u001B[49m\u001B[43massert_hostname\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43massert_hostname\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 812\u001B[39m \u001B[43m \u001B[49m\u001B[43massert_fingerprint\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43massert_fingerprint\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 813\u001B[39m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 814\u001B[39m \u001B[38;5;28mself\u001B[39m.sock = sock_and_verified.socket\n\u001B[32m 816\u001B[39m \u001B[38;5;66;03m# If an error occurs during connection/handshake we may need to release\u001B[39;00m\n\u001B[32m 817\u001B[39m \u001B[38;5;66;03m# our lock so another connection can probe the origin.\u001B[39;00m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\connection.py:975\u001B[39m, in \u001B[36m_ssl_wrap_socket_and_match_hostname\u001B[39m\u001B[34m(sock, cert_reqs, ssl_version, ssl_minimum_version, ssl_maximum_version, cert_file, key_file, key_password, ca_certs, ca_cert_dir, ca_cert_data, assert_hostname, assert_fingerprint, server_hostname, ssl_context, tls_in_tls)\u001B[39m\n\u001B[32m 972\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m is_ipaddress(normalized):\n\u001B[32m 973\u001B[39m server_hostname = normalized\n\u001B[32m--> \u001B[39m\u001B[32m975\u001B[39m ssl_sock = \u001B[43mssl_wrap_socket\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 976\u001B[39m \u001B[43m \u001B[49m\u001B[43msock\u001B[49m\u001B[43m=\u001B[49m\u001B[43msock\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 977\u001B[39m \u001B[43m \u001B[49m\u001B[43mkeyfile\u001B[49m\u001B[43m=\u001B[49m\u001B[43mkey_file\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 978\u001B[39m \u001B[43m \u001B[49m\u001B[43mcertfile\u001B[49m\u001B[43m=\u001B[49m\u001B[43mcert_file\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 979\u001B[39m \u001B[43m \u001B[49m\u001B[43mkey_password\u001B[49m\u001B[43m=\u001B[49m\u001B[43mkey_password\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 980\u001B[39m \u001B[43m \u001B[49m\u001B[43mca_certs\u001B[49m\u001B[43m=\u001B[49m\u001B[43mca_certs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 981\u001B[39m \u001B[43m \u001B[49m\u001B[43mca_cert_dir\u001B[49m\u001B[43m=\u001B[49m\u001B[43mca_cert_dir\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 982\u001B[39m \u001B[43m \u001B[49m\u001B[43mca_cert_data\u001B[49m\u001B[43m=\u001B[49m\u001B[43mca_cert_data\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 983\u001B[39m \u001B[43m \u001B[49m\u001B[43mserver_hostname\u001B[49m\u001B[43m=\u001B[49m\u001B[43mserver_hostname\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 984\u001B[39m \u001B[43m \u001B[49m\u001B[43mssl_context\u001B[49m\u001B[43m=\u001B[49m\u001B[43mcontext\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 985\u001B[39m \u001B[43m \u001B[49m\u001B[43mtls_in_tls\u001B[49m\u001B[43m=\u001B[49m\u001B[43mtls_in_tls\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 986\u001B[39m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 988\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m 989\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m assert_fingerprint:\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\F6+宜搭+其它\\Lib\\site-packages\\urllib3\\util\\ssl_.py:461\u001B[39m, in \u001B[36mssl_wrap_socket\u001B[39m\u001B[34m(sock, keyfile, certfile, cert_reqs, ca_certs, server_hostname, ssl_version, ciphers, ssl_context, ca_cert_dir, key_password, ca_cert_data, tls_in_tls)\u001B[39m\n\u001B[32m 459\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m ca_certs \u001B[38;5;129;01mor\u001B[39;00m ca_cert_dir \u001B[38;5;129;01mor\u001B[39;00m ca_cert_data:\n\u001B[32m 460\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m461\u001B[39m \u001B[43mcontext\u001B[49m\u001B[43m.\u001B[49m\u001B[43mload_verify_locations\u001B[49m\u001B[43m(\u001B[49m\u001B[43mca_certs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mca_cert_dir\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mca_cert_data\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 462\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mOSError\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[32m 463\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m SSLError(e) \u001B[38;5;28;01mfrom\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34;01me\u001B[39;00m\n",
"\u001B[31mKeyboardInterrupt\u001B[39m: "
]
}
],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-03-17T09:05:23.254492Z",
"start_time": "2025-03-17T09:05:20.198477Z"
}
},
"cell_type": "code",
"source": [
"df1 = pd.DataFrame(all_data)\n",
"df1.to_excel(r\"D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\京东云修数据导出-13576939998.xlsx\")"
],
"id": "3ec7e6bfa5d425ee",
"outputs": [],
"execution_count": 2
},
{
"metadata": {},
"cell_type": "markdown",
"source": "车辆信息",
"id": "a405bccb4dfdf949"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-07-25T02:19:42.395112Z",
"start_time": "2025-07-25T01:57:39.563741Z"
}
},
"cell_type": "code",
"source": [
"import requests\n",
"import json\n",
"import time\n",
"import pandas as pd\n",
"from tqdm import tqdm\n",
"from datetime import datetime, timedelta\n",
"\n",
"headers = {\n",
" \"cookie\":'__jdv=135409966|direct|-|none|-|1753349284245; flash=3_EuI2ojX4uJ6bPhnrd3tKHPKia0BaRB7TCi-gdcbqrSIauxZmkgE_yZJ7WTnzwB4_5G2Tdhdi89A4xE8t1uUvWrpjg5EnWwwrMNKGl8mWCaH1Vlo0VlXNk6Eyv9VrOA_6v-MDACjpO5RN4yGkhYfYFH5968Y9NPLEbK-ARUVmdrTXu6y8_zq-chEIqCSnme**; pin=jd_4d1be17ac64d3; unick=jd_2tnscrz74er69g; thor=884B7391C2AC4631693332E7FA593E284097D0ECACAF2D9BD0A558BB6EB65EAAB7F276B2475E6F7271396EBE3D1C84832247536BA40EB75D5EBF9AF87797FDD41D2AC25CC5C5B8803729EF8374A9C2CCE2D36DB51AB971A07238FDB6EE68D2ADC973BD6F40501EB116A185BEB86917D5C9DA41A03B1E1794D9591D2861EE053015AACDC7C64065615BBCCE428FC7E09AB66E0E5EA6EE69B23323F013536FF8ED; light_key=AASBKE7rOxgWQziEhC_QY6ya_BdQfCqNzo11axkWQXqAq56Qf-aHwELmm75kijsmGBR7FBg2; JD_UUID=d4eef9de-02a9-41c6-85dd-7f656b5c2bac; yunxiupin=jd_4d1be17ac64d3; UUID=b54ae144-a7f5-4000-bcfb-19ac3838a879; SESSION_USER_NAME=%E6%9D%8E%E5%BB%BA%E4%BC%9A; __jda=154799550.17533492842442035336434.1753349284.1753349284.1753408464.2; __jdc=154799550; PUBLIC_NOTICE_TIME105188=\"2022-10-16 10:33:17\"; __jdb=154799550.4.17533492842442035336434|2.1753408464',\n",
" \"referer\": \"https://www.yunxiu.com/legend/account\",\n",
" \"sec-ch-ua\": \"\\\"Not(A:Brand\\\";v=\\\"99\\\", \\\"Microsoft Edge\\\";v=\\\"133\\\", \\\"Chromium\\\";v=\\\"133\\\"\",\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; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 Edg/133.0.0.0\",\n",
" \"x-requested-with\": \"XMLHttpRequest\"\n",
"}\n",
"\n",
"all_data = []\n",
"number = 1746510018148 # 从车辆查询页面中 date参数获取\n",
"page = 1\n",
"max_retries = 5 # 最大重试次数\n",
"backoff_factor = 1 # 指数退避因子\n",
"\n",
"current_date = datetime.now()\n",
"years_back = 10\n",
"\n",
"end_date = current_date - timedelta(days=365 * years_back)\n",
"start_date = current_date\n",
"\n",
"while start_date >= end_date:\n",
" try:\n",
" search_startTime = (start_date - timedelta(days=365)).strftime('%Y-%m-%d')\n",
" search_endTime = start_date.strftime('%Y-%m-%d')\n",
" print(f'search_startTime: {search_startTime}, search_endTime: {search_endTime}')\n",
" start_date -= timedelta(days=365) # 每次减去一年\n",
" exit_loop = False\n",
" for page in tqdm(range(1,1001)):\n",
" if exit_loop:\n",
" break\n",
" url = f\"https://www.yunxiu.com/legend/archives/carinfo/locate/list?page={page}&size=12&search_startTime={search_startTime}&search_endTime={search_endTime}&_={number}\"\n",
" attempt = 0\n",
" while attempt < max_retries:\n",
" try:\n",
" response = requests.get(url=url, headers=headers)\n",
" response.raise_for_status() # 如果响应状态码不是200,则抛出HTTPError异常\n",
" res = response.json().get(\"data\", {}).get(\"content\", [])\n",
" max_len = response.json().get(\"data\", {}).get(\"totalPages\", []) + 1\n",
" if page == max_len:\n",
" print(max_len)\n",
" exit_loop = True\n",
" break # 成功后退出重试循环\n",
" for item in res:\n",
" base_info = {k: v for k, v in item.items() if k != \"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",
" except:\n",
" pass\n",
"\n",
"df1 = pd.DataFrame(all_data)\n",
"df1.to_csv(r\"D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\京东云修数据导出-15202993999 车辆.csv\")\n"
],
"id": "335a10b919a1f6b5",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2024-07-25, search_endTime: 2025-07-25\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 1/1000 [00:01<25:03, 1.50s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 2/1000 [00:02<22:00, 1.32s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2023-07-26, search_endTime: 2024-07-25\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 2%|▏ | 20/1000 [00:31<24:34, 1.50s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"21\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 2%|▏ | 21/1000 [00:32<25:15, 1.55s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2022-07-26, search_endTime: 2023-07-26\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 22%|██▏ | 216/1000 [05:25<20:51, 1.60s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"第217页请求失败: HTTPSConnectionPool(host='www.yunxiu.com', port=443): Max retries exceeded with url: /legend/archives/carinfo/locate/list?page=217&size=12&search_startTime=2022-07-26&search_endTime=2023-07-26&_=1746510018387 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000027CA36597C0>, 'Connection to www.yunxiu.com timed out. (connect timeout=None)'))\n",
"准备第1次重试,等待1秒...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 23%|██▎ | 226/1000 [06:02<22:23, 1.74s/it] "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"227\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 23%|██▎ | 227/1000 [06:03<20:37, 1.60s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2021-07-26, search_endTime: 2022-07-26\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 25%|██▍ | 248/1000 [06:09<18:34, 1.48s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"249\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 25%|██▍ | 249/1000 [06:10<18:36, 1.49s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2020-07-26, search_endTime: 2021-07-26\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 33%|███▎ | 333/1000 [08:16<16:34, 1.49s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"334\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 33%|███▎ | 334/1000 [08:17<16:32, 1.49s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2019-07-27, search_endTime: 2020-07-26\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 3%|▎ | 29/1000 [00:42<23:50, 1.47s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"30\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 3%|▎ | 30/1000 [00:43<23:37, 1.46s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2018-07-27, search_endTime: 2019-07-27\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/1000 [00:00<?, ?it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 1/1000 [00:01<19:02, 1.14s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2017-07-27, search_endTime: 2018-07-27\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/1000 [00:00<?, ?it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 1/1000 [00:01<20:22, 1.22s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2016-07-27, search_endTime: 2017-07-27\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 1/1000 [00:01<25:47, 1.55s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 2/1000 [00:02<22:49, 1.37s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2015-07-28, search_endTime: 2016-07-27\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 1/1000 [00:01<24:04, 1.45s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 2/1000 [00:02<21:36, 1.30s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"search_startTime: 2014-07-28, search_endTime: 2015-07-28\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/1000 [00:00<?, ?it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 1/1000 [00:01<19:09, 1.15s/it]\n"
]
}
],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-05-15T08:31:40.647176Z",
"start_time": "2025-05-15T08:31:40.210149Z"
}
},
"cell_type": "code",
"source": [
"df1 = pd.DataFrame(all_data)\n",
"df1.to_csv(r\"D:\\Idea Project\\F6+宜搭+其它(1)\\new\\文件输出\\京东云修数据导出-13032256777 -车辆.csv\")"
],
"id": "e45e8757ed4ca425",
"outputs": [
{
"ename": "NameError",
"evalue": "name 'pd' is not defined",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mNameError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[1], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m df1 \u001B[38;5;241m=\u001B[39m pd\u001B[38;5;241m.\u001B[39mDataFrame(all_data)\n\u001B[0;32m 2\u001B[0m df1\u001B[38;5;241m.\u001B[39mto_csv(\u001B[38;5;124mr\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mD:\u001B[39m\u001B[38;5;124m\\\u001B[39m\u001B[38;5;124mIdea Project\u001B[39m\u001B[38;5;124m\\\u001B[39m\u001B[38;5;124mF6+宜搭+其它(1)\u001B[39m\u001B[38;5;124m\\\u001B[39m\u001B[38;5;124mnew\u001B[39m\u001B[38;5;124m\\\u001B[39m\u001B[38;5;124m文件输出\u001B[39m\u001B[38;5;124m\\\u001B[39m\u001B[38;5;124m京东云修数据导出-13032256777 -车辆.csv\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n",
"\u001B[1;31mNameError\u001B[0m: name 'pd' is not defined"
]
}
],
"execution_count": 1
},
{
"metadata": {},
"cell_type": "markdown",
"source": "",
"id": "bf951aee0e74b1d1"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "新单据信息",
"id": "eb09e38f6613b5e7"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-01-28T06:31:17.385432200Z",
"start_time": "2026-01-28T06:31:16.760396700Z"
}
},
"cell_type": "code",
"source": [
"import requests\n",
"\n",
"cookies = {\n",
" '__jdv': '241039512|direct|-|none|-|1769580195196',\n",
" 'mba_muid': '17695801951961847696270',\n",
" 'mba_sid': '1769580378119515622883.0',\n",
" 'QRCodeKey': 'AAEAIGlfy0S9IVwOVAfE3NXgBILRP8R2qpHAikvosD3cyvar',\n",
" 'wlfstk_smdl': 'drd3j1dlvwjz7o96orgqco4keigo6ipj',\n",
" 'pin': '%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8',\n",
" 'unick': 's2v2tk1w4w8eb9',\n",
" 'yunxiupin': '%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8',\n",
" 'bmall_id': '499220987560FEF36C9FB4C092693FFC98D6D74FB85924A6DC3E030ADD3477238C68C7B8E10ED66898B6EBEB4562ED893FBF19E4CD0030FECE3218317F39A2F5FC9FF25A11561368D02C95564D247AC2A151A086B1074D5EE362C7CB1BA34EC79B50B3252535972791A084C5D010158EF4B5C1EADC2808FFF3EB992EF34A9D14',\n",
" 'UUID': '7c069d6f-2724-4008-b308-09f436240035',\n",
" 'SESSION_USER_NAME': '%E6%9F%A5%E4%BA%AE',\n",
" 'flash': '3_bBBCg0-OBy68xAANqduCSaKWV_6DKpxvObl29hEy-5Il0taBIimdGJfimCMZHKH-CUR09cTQwjAyGRKP9z9jHkm9UrWP2nTOg38vb68OEMqiiwdZRg1AqxMtUmDSWBQdVhGg5qQSbO5p1eyeBPlu7Htsgtf_TMouEaoqlijt7PqsLs4yBBM8Alki49TorJwr9E6mcmF96X-2O-E6',\n",
" 'thor': '51C732866E8A756A4ED8B4738163D4C059D9063322E05745BA0D815A80FEBE3D550B447E8BB3C99207EE02D994108998DE070A571A758BED83B7535090CB6C2DF853F8994511D1708463D0C16274A620668FCE84D3B708BA56633C46432FABC8B4DA7688141595BA1C45C419160C151A638E6A118D22DA606EE420BE383B9D53FB842C2C90A6454E4CFED4E3A63A8ED5',\n",
" 'light_key': 'AASBKE7rOxgWQziEhC_QY6yaLIBQgOT1dxVmsPRjRIB9ndtR9Aslstb1iQBYYZyMvLEJNsNDL52e7UA1dFCeHNIVWAseFg',\n",
" 'JD_UUID': 'b9441bd1-a782-4d34-b2af-47b6f1e89bc6',\n",
" '3AB9D23F7A4B3CSS': 'jdd03XH7UJPD6AWWSVFN6XP6T23OSWBA235SAMFFYPEW3JTTJRTT4TQTZLIAKR47DQ26GKGT266NM6WGBCEKT7R6RL2K34IAAAAM4ANDUGQYAAAAACSHCLFATJTAJKMX',\n",
" 'sdtoken': 'AAbEsBpEIOVjqTAKCQtvQu17FLUpUb4CM0QtRGo9_y1DbK8h44YEOS2UiemwosOOgSgqPwHoDiJho0E69o2zgRTqSGouwgzZW2ByDMgJdY2S_IVvi4uyNneMFom6TCFDsAUG_C0BzQYsVWWU',\n",
" '__jda': '200816309.17695801951961847696270.1769580195.1769580195.1769580195.1',\n",
" '__jdc': '200816309',\n",
" '3AB9D23F7A4B3C9B': 'KPOAZ5CBYQXJ25JOSSXGBQDYYOVGX7EMTPWFWDGVZ3KWTLNZU45HHPQ4MXYSIO37IV72PLAND3VYJH2ZOLD6LFWBDA',\n",
" '__jdb': '200816309.56.17695801951961847696270|1.1769580195',\n",
"}\n",
"\n",
"headers = {\n",
" 'accept': '*/*',\n",
" 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" 'origin': 'https://jch.yunxiu.com',\n",
" 'priority': 'u=1, i',\n",
" 'referer': 'https://jch.yunxiu.com/',\n",
" 'sec-ch-ua': '\"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"144\", \"Microsoft Edge\";v=\"144\"',\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-site',\n",
" 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0',\n",
" 'x-requested-with': 'XMLHttpRequest',\n",
" # 'cookie': '__jdv=241039512|direct|-|none|-|1769580195196; mba_muid=17695801951961847696270; mba_sid=1769580378119515622883.0; QRCodeKey=AAEAIGlfy0S9IVwOVAfE3NXgBILRP8R2qpHAikvosD3cyvar; wlfstk_smdl=drd3j1dlvwjz7o96orgqco4keigo6ipj; pin=%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8; unick=s2v2tk1w4w8eb9; yunxiupin=%E5%8D%97%E6%98%8C%E4%BD%B3%E4%B9%BE%E8%BD%A6%E6%9C%8D%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8; bmall_id=499220987560FEF36C9FB4C092693FFC98D6D74FB85924A6DC3E030ADD3477238C68C7B8E10ED66898B6EBEB4562ED893FBF19E4CD0030FECE3218317F39A2F5FC9FF25A11561368D02C95564D247AC2A151A086B1074D5EE362C7CB1BA34EC79B50B3252535972791A084C5D010158EF4B5C1EADC2808FFF3EB992EF34A9D14; UUID=7c069d6f-2724-4008-b308-09f436240035; SESSION_USER_NAME=%E6%9F%A5%E4%BA%AE; flash=3_bBBCg0-OBy68xAANqduCSaKWV_6DKpxvObl29hEy-5Il0taBIimdGJfimCMZHKH-CUR09cTQwjAyGRKP9z9jHkm9UrWP2nTOg38vb68OEMqiiwdZRg1AqxMtUmDSWBQdVhGg5qQSbO5p1eyeBPlu7Htsgtf_TMouEaoqlijt7PqsLs4yBBM8Alki49TorJwr9E6mcmF96X-2O-E6; thor=51C732866E8A756A4ED8B4738163D4C059D9063322E05745BA0D815A80FEBE3D550B447E8BB3C99207EE02D994108998DE070A571A758BED83B7535090CB6C2DF853F8994511D1708463D0C16274A620668FCE84D3B708BA56633C46432FABC8B4DA7688141595BA1C45C419160C151A638E6A118D22DA606EE420BE383B9D53FB842C2C90A6454E4CFED4E3A63A8ED5; light_key=AASBKE7rOxgWQziEhC_QY6yaLIBQgOT1dxVmsPRjRIB9ndtR9Aslstb1iQBYYZyMvLEJNsNDL52e7UA1dFCeHNIVWAseFg; JD_UUID=b9441bd1-a782-4d34-b2af-47b6f1e89bc6; 3AB9D23F7A4B3CSS=jdd03XH7UJPD6AWWSVFN6XP6T23OSWBA235SAMFFYPEW3JTTJRTT4TQTZLIAKR47DQ26GKGT266NM6WGBCEKT7R6RL2K34IAAAAM4ANDUGQYAAAAACSHCLFATJTAJKMX; sdtoken=AAbEsBpEIOVjqTAKCQtvQu17FLUpUb4CM0QtRGo9_y1DbK8h44YEOS2UiemwosOOgSgqPwHoDiJho0E69o2zgRTqSGouwgzZW2ByDMgJdY2S_IVvi4uyNneMFom6TCFDsAUG_C0BzQYsVWWU; __jda=200816309.17695801951961847696270.1769580195.1769580195.1769580195.1; __jdc=200816309; 3AB9D23F7A4B3C9B=KPOAZ5CBYQXJ25JOSSXGBQDYYOVGX7EMTPWFWDGVZ3KWTLNZU45HHPQ4MXYSIO37IV72PLAND3VYJH2ZOLD6LFWBDA; __jdb=200816309.56.17695801951961847696270|1.1769580195',\n",
"}\n",
"\n",
"params = {\n",
" 'page': '1',\n",
" 'size': '12',\n",
" 'btnType': 'search',\n",
"}\n",
"\n",
"response = requests.get('https://g.yunxiu.com/megatron/api/v1/order/list', params=params, cookies=cookies, headers=headers)\n"
],
"id": "ca85268200bda895",
"outputs": [],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-01-28T06:35:23.307514700Z",
"start_time": "2026-01-28T06:35:23.261598100Z"
}
},
"cell_type": "code",
"source": [
"response.json()\n",
"content = response.json()['data'].get(\"content\")\n",
"\n",
"import pandas as pd\n",
"df = pd.DataFrame(content)\n",
"df.to_csv(\"京东云修单据信息demo.csv\")"
],
"id": "b18cdb2c1fb49e75",
"outputs": [],
"execution_count": 5
}
],
"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
}