Files
F6--/张阳脚本/竞品系统数据导出/特价轮胎经销商系统.ipynb
2026-01-30 11:28:35 +08:00

1320 lines
96 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "## 单据",
"id": "4eaaaa788a0f298d"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T03:20:05.123503800Z",
"start_time": "2025-12-29T03:20:03.975961200Z"
}
},
"cell_type": "code",
"source": [
"import requests\n",
"\n",
"cookies = {\n",
" 'ECSCP[admin_id]': '108',\n",
" 'ECSCP[admin_pass]': 'a7a7436dc3cdb9a0cf46db404553e361',\n",
" 'ECSCP[page_size]': '15',\n",
" 'ECS_LastCheckOrder': 'Mon%2C%2029%20Dec%202025%2002%3A01%3A30%20GMT',\n",
" 'real_ipd': '221.226.144.180',\n",
" 'ECSCP_ID': 'b038b6f65745ee9036bb43d1d1b48393c0e41cbe',\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",
" 'cache-control': 'no-cache',\n",
" 'content-type': 'application/x-www-form-urlencoded',\n",
" 'origin': 'https://tejialuntai.com',\n",
" 'pragma': 'no-cache',\n",
" 'priority': 'u=1, i',\n",
" 'referer': 'https://tejialuntai.com/admin2/car_repair.php?act=list',\n",
" 'sec-ch-ua': '\"Microsoft Edge\";v=\"143\", \"Chromium\";v=\"143\", \"Not A(Brand\";v=\"24\"',\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/143.0.0.0 Safari/537.36 Edg/143.0.0.0',\n",
" # 'cookie': 'ECSCP[admin_id]=108; ECSCP[admin_pass]=a7a7436dc3cdb9a0cf46db404553e361; ECSCP[page_size]=15; ECS_LastCheckOrder=Mon%2C%2029%20Dec%202025%2002%3A01%3A30%20GMT; real_ipd=221.226.144.180; ECSCP_ID=b038b6f65745ee9036bb43d1d1b48393c0e41cbe',\n",
"}\n",
"\n",
"params = {\n",
" 'is_ajax': '1',\n",
"}\n",
"\n",
"data = {\n",
" 'act': 'query',\n",
" 'repair_id': '',\n",
" 'user_name': '',\n",
" 'note_name': '',\n",
" 'carnumber': '',\n",
" 'into_fa': '',\n",
" 'price_offer': '0',\n",
" 'clear': '0',\n",
" 'is_invalid': '0',\n",
" 'insurance_id': '0',\n",
" 'suer_id': '0',\n",
" 'choice_time': '0',\n",
" 'inyear': '0',\n",
" 'intime': '0',\n",
" 'inday': '0',\n",
" 'is_completed': '0',\n",
" 'car_id': '0',\n",
" 'wanmsg': '',\n",
" 'record_count': '5774',\n",
" 'page_size': '15',\n",
" 'page': '1',\n",
" 'page_count': '385',\n",
" 'start': '15',\n",
"}\n",
"\n",
"response = requests.post('https://tejialuntai.com/admin2/car_repair.php', params=params, cookies=cookies,\n",
" headers=headers, data=data)\n"
],
"id": "c04273d6cb063db0",
"outputs": [],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T02:05:11.789892400Z",
"start_time": "2025-12-29T02:05:11.770112600Z"
}
},
"cell_type": "code",
"source": "response.json().get(\"content\")",
"id": "b21d2f6cb6cc5846",
"outputs": [
{
"data": {
"text/plain": [
"'<!-- $Id: brand_list.htm 15898 2009-05-04 07:25:41Z liuhui $ -->\\r\\n\\r\\n <table cellpadding=\"3\" cellspacing=\"1\">\\r\\n <tr>\\r\\n <th><input onclick=\\'listTable.selectAll(this, \"checkboxes\")\\' type=\"checkbox\" id=\"sel\"><label for=\"sel\">全选</label></th>\\r\\n <!-- <th>会员ID</th>-->\\r\\n <th>车主</th>\\r\\n <th>名称</th>\\r\\n <th>车牌号</th>\\r\\n <th>往来描述</th>\\r\\n <th>车型</th>\\r\\n <th>保险公司</th>\\r\\n <th>接待员</th>\\r\\n <!--<th>机电工</th>-->\\r\\n <!--<th>维修方式</th>-->\\r\\n <th>进厂公里数</th>\\r\\n <th>进厂时间</th>\\r\\n <th>交车时间</th>\\r\\n <th>预检状态</th>\\r\\n <!--<th>预检时间</th>-->\\r\\n <th>报价状态</th>\\r\\n <!-- <th>报价时间</th>-->\\r\\n <!--<th>工种</th>-->\\r\\n <th>车主状态</th>\\r\\n <th>维修状态</th>\\r\\n <!--<th>维修时间</th>-->\\r\\n <th>质检状态</th>\\r\\n <th>结算状态</th>\\r\\n <th>报价员</th>\\r\\n <th>结算员</th>\\r\\n <th>结算时间</th>\\r\\n <th>预收款</th>\\r\\n <th>预收方式</th>\\r\\n <th>单据总额</th>\\r\\n <th>实收金额</th>\\r\\n <th>优惠金额</th>\\r\\n <th>操作</th>\\r\\n </tr>\\r\\n <tr id=\"rp_120993\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120993\"/>120993</td>\\r\\n <!--<td align=\"center\">42465</td>-->\\r\\n <td align=\"center\">13655076051</td>\\r\\n <td align=\"center\">梅小青</td>\\r\\n <td align=\"center\">闽AH5L11</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">宝马</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120993)\">11</span></td>\\r\\n <td align=\"center\">2025-12-28 17:03:59</td>\\r\\n <td align=\"center\">2025-12-28 12:01</td>\\r\\n <td align=\"center\">预检中</td>\\r\\n <!--<td align=\"center\">0</td>-->\\r\\n <td align=\"center\">未报价</td>\\r\\n <!--<td align=\"center\">0</td>-->\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">\\r\\n 未维修 </td>\\r\\n <!--<td>0</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120993\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120993)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120993,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120993,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120993\">查看</a>\\r\\n \\t \\t<a href=\"javascript:;\" onClick=\"repdelete(120993,1)\">删除</a>\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120976\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120976\"/>120976</td>\\r\\n <!--<td align=\"center\">75338</td>-->\\r\\n <td align=\"center\">13694889302</td>\\r\\n <td align=\"center\">李亚峰</td>\\r\\n <td align=\"center\">赣AMQ691</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">宝马</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120976)\">88443</span></td>\\r\\n <td align=\"center\">2025-12-28 13:12:27</td>\\r\\n <td align=\"center\">2025-12-28 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 14:29</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 16:37</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-29 09:35</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120976\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120976)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120976,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120976,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">200.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120976\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120956\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120956\"/>120956</td>\\r\\n <!--<td align=\"center\">39869</td>-->\\r\\n <td align=\"center\">18970093030</td>\\r\\n <td align=\"center\">洪达</td>\\r\\n <td align=\"center\">赣M60606</td>\\r\\n <td align=\"center\">洪达</td>\\r\\n <td align=\"center\">广汽传祺</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120956)\">11</span></td>\\r\\n <td align=\"center\">2025-12-28 10:04:02</td>\\r\\n <td align=\"center\">2025-12-28 12:01</td>\\r\\n <td align=\"center\">预检中</td>\\r\\n <!--<td align=\"center\">0</td>-->\\r\\n <td align=\"center\">未报价</td>\\r\\n <!--<td align=\"center\">0</td>-->\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">\\r\\n 未维修 </td>\\r\\n <!--<td>0</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120956\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120956)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120956,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120956,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120956\">查看</a>\\r\\n \\t \\t<a href=\"javascript:;\" onClick=\"repdelete(120956,1)\">删除</a>\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120954\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120954\"/>120954</td>\\r\\n <!--<td align=\"center\">44330</td>-->\\r\\n <td align=\"center\">15070852061</td>\\r\\n <td align=\"center\">邹女士</td>\\r\\n <td align=\"center\">赣AP13M8</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">奇瑞</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120954)\">5515</span></td>\\r\\n <td align=\"center\">2025-12-28 09:56:52</td>\\r\\n <td align=\"center\">2025-12-28 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 16:25</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 17:33</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n 未维修 </td>\\r\\n <!--<td>0</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120954\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120954)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120954,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120954,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">260.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120954\">查看</a>\\r\\n \\t \\t<a href=\"javascript:;\" onClick=\"repdelete(120954,1)\">删除</a>\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120952\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120952\"/>120952</td>\\r\\n <!--<td align=\"center\">68872</td>-->\\r\\n <td align=\"center\">15912345678</td>\\r\\n <td align=\"center\">骏驰</td>\\r\\n <td align=\"center\">赣AT90M7</td>\\r\\n <td align=\"center\">骏驰</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120952)\">11</span></td>\\r\\n <td align=\"center\">2025-12-28 09:33:10</td>\\r\\n <td align=\"center\">2025-12-28 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 09:33</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:06</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n 未维修 </td>\\r\\n <!--<td>0</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120952\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120952)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120952,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120952,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">500.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120952\">查看</a>\\r\\n \\t \\t<a href=\"javascript:;\" onClick=\"repdelete(120952,1)\">删除</a>\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120951\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120951\"/>120951</td>\\r\\n <!--<td align=\"center\">39869</td>-->\\r\\n <td align=\"center\">18970093030</td>\\r\\n <td align=\"center\">洪达</td>\\r\\n <td align=\"center\">赣A09PS0</td>\\r\\n <td align=\"center\">洪达</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120951)\">11</span></td>\\r\\n <td align=\"center\">2025-12-28 09:24:09</td>\\r\\n <td align=\"center\">2025-12-28 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 15:51</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 15:54</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-28 16:27</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已质检</font></td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120951\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120951)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120951,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120951,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">960.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120951\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n <a href=\"car_repair.php?act=visit&id=120951\" style=\"color:#d11d1d\">回访</a> </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120948\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120948\"/>120948</td>\\r\\n <!--<td align=\"center\">39786</td>-->\\r\\n <td align=\"center\">15632985669</td>\\r\\n <td align=\"center\">米其林</td>\\r\\n <td align=\"center\">赣AR95N2</td>\\r\\n <td align=\"center\">米其林</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120948)\">11</span></td>\\r\\n <td align=\"center\">2025-12-28 08:53:37</td>\\r\\n <td align=\"center\">2025-12-28 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 14:29</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 17:02</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">维修中</font>\\r\\n </td>\\r\\n <!--<td>0</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120948\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120948)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120948,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120948,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">320.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"javascript:confirm_redirect(\\'您确定该车维修保养已完成?\\', \\'car_repair.php?act=finish&id=120948\\')\">\\r\\n <font color=\"#d11d1d\">完成</font>\\r\\n </a>\\r\\n <a href=\"car_repair.php?act=edit&id=120948\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120933\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120933\"/>120933</td>\\r\\n <!--<td align=\"center\">43904</td>-->\\r\\n <td align=\"center\">13677910473</td>\\r\\n <td align=\"center\">张女士</td>\\r\\n <td align=\"center\">赣A9261U</td>\\r\\n <td align=\"center\">利凡</td>\\r\\n <td align=\"center\">现代</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120933)\">85779</span></td>\\r\\n <td align=\"center\">2025-12-27 17:10:38</td>\\r\\n <td align=\"center\">2025-12-27 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-27 17:57</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:06</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-28 16:27</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已质检</font></td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已结算</font></td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">2025-12-28 17:47:11</td>\\r\\n <td align=\"center\" id=\"pre_120933\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120933)\">30</span>-->\\r\\n <!--已结算-->\\r\\n 30 </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120933,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">30.00</td>\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_pay_amount\\', 120933)\">0.00</span></td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"javascript:;\" onClick=\"repback(120933)\">退结算</a>\\r\\n <a href=\"car_repair.php?act=edit&id=120933\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n <a href=\"car_repair.php?act=visit&id=120933\" style=\"color:#d11d1d\">回访</a> </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120928\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120928\"/>120928</td>\\r\\n <!--<td align=\"center\">75323</td>-->\\r\\n <td align=\"center\">13725690859</td>\\r\\n <td align=\"center\">先生</td>\\r\\n <td align=\"center\">赣AFJ919</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">Jeep</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120928)\">45879</span></td>\\r\\n <td align=\"center\">2025-12-27 16:28:22</td>\\r\\n <td align=\"center\">2025-12-27 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-27 16:28</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:06</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n 未维修 </td>\\r\\n <!--<td>0</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120928\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120928)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120928,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120928,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">380.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120928\">查看</a>\\r\\n \\t \\t<a href=\"javascript:;\" onClick=\"repdelete(120928,1)\">删除</a>\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120927\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120927\"/>120927</td>\\r\\n <!--<td align=\"center\">75323</td>-->\\r\\n <td align=\"center\">13725690859</td>\\r\\n <td align=\"center\">先生</td>\\r\\n <td align=\"center\">赣AFJ919</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">Jeep</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120927)\">45879</span></td>\\r\\n <td align=\"center\">2025-12-27 16:20:55</td>\\r\\n <td align=\"center\">2025-12-27 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-27 16:20</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:07</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n 未维修 </td>\\r\\n <!--<td>0</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120927\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120927)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120927,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120927,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">200.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120927\">查看</a>\\r\\n \\t \\t<a href=\"javascript:;\" onClick=\"repdelete(120927,1)\">删除</a>\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120919\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120919\"/>120919</td>\\r\\n <!--<td align=\"center\">64996</td>-->\\r\\n <td align=\"center\">15579161130</td>\\r\\n <td align=\"center\">曾女士</td>\\r\\n <td align=\"center\">赣AG21B3</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特万莉</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120919)\">129154</span></td>\\r\\n <td align=\"center\">2025-12-27 15:56:37</td>\\r\\n <td align=\"center\">2025-12-27 15:56:37</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-27 18:00</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:07</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-28 16:27</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已质检</font></td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已结算</font></td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">2025-12-28 17:47:56</td>\\r\\n <td align=\"center\" id=\"pre_120919\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120919)\">80</span>-->\\r\\n <!--已结算-->\\r\\n 80 </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120919,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">80.00</td>\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_pay_amount\\', 120919)\">0.00</span></td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"javascript:;\" onClick=\"repback(120919)\">退结算</a>\\r\\n <a href=\"car_repair.php?act=edit&id=120919\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n <a href=\"car_repair.php?act=visit&id=120919\" style=\"color:#d11d1d\">回访</a> </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120910\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120910\"/>120910</td>\\r\\n <!--<td align=\"center\">41345</td>-->\\r\\n <td align=\"center\">13870862988</td>\\r\\n <td align=\"center\">V7</td>\\r\\n <td align=\"center\">赣A11VG1</td>\\r\\n <td align=\"center\">领豪</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120910)\">11</span></td>\\r\\n <td align=\"center\">2025-12-27 14:43:04</td>\\r\\n <td align=\"center\">2025-12-27 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-27 17:27</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:08</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-29 09:53</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120910\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120910)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120910,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120910,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">650.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120910\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120907\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120907\"/>120907</td>\\r\\n <!--<td align=\"center\">48075</td>-->\\r\\n <td align=\"center\">13970809872</td>\\r\\n <td align=\"center\">杨于翔</td>\\r\\n <td align=\"center\">赣MY3015</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">雪铁龙</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120907)\">112118</span></td>\\r\\n <td align=\"center\">2025-12-27 14:26:56</td>\\r\\n <td align=\"center\">2025-12-27 14:26:56</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 16:29</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 16:30</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-28 16:43</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已质检</font></td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已结算</font></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">2025-12-28 17:47:35</td>\\r\\n <td align=\"center\" id=\"pre_120907\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120907)\">1020</span>-->\\r\\n <!--已结算-->\\r\\n 1020 </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120907,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">1030.00</td>\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_pay_amount\\', 120907)\">0.00</span></td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"javascript:;\" onClick=\"repback(120907)\">退结算</a>\\r\\n <a href=\"car_repair.php?act=edit&id=120907\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n <a href=\"car_repair.php?act=visit&id=120907\" style=\"color:#d11d1d\">回访</a> </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120905\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120905\"/>120905</td>\\r\\n <!--<td align=\"center\">62190</td>-->\\r\\n <td align=\"center\">15900669098</td>\\r\\n <td align=\"center\">涂先生</td>\\r\\n <td align=\"center\">赣A9CQ96</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">别克</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120905)\">39535</span></td>\\r\\n <td align=\"center\">2025-12-27 14:13:54</td>\\r\\n <td align=\"center\">2025-12-27 14:13:54</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-27 17:59</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:09</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-29 09:20</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120905\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120905)\">140</span>-->\\r\\n \\t<!-- -->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120905,this.value)\" value=\"140\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120905,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">140.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120905\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n </td>\\r\\n </tr>\\r\\n <tr id=\"rp_120898\">\\r\\n <td align=\"center\"><input type=\"checkbox\" name=\"checkboxes[]\" value=\"120898\"/>120898</td>\\r\\n <!--<td align=\"center\">63926</td>-->\\r\\n <td align=\"center\">13767963367</td>\\r\\n <td align=\"center\">舒先生</td>\\r\\n <td align=\"center\">赣A3J503</td>\\r\\n <td align=\"center\">人保</td>\\r\\n <td align=\"center\">大众</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\">纽斯特王君</td>\\r\\n <!--<td align=\"center\"></td>-->\\r\\n <!--<td align=\"center\">外出施救</td>-->\\r\\n <td align=\"center\"><span onclick=\"listTable.edit(this, \\'edit_into_fa\\', 120898)\">61966</span></td>\\r\\n <td align=\"center\">2025-12-27 13:42:10</td>\\r\\n <td align=\"center\">2025-12-27 12:01</td>\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已预检</font></td>\\r\\n <!--<td align=\"center\">2025-12-27 13:42</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">已报价</font></td>\\r\\n <!--<td align=\"center\">2025-12-28 12:10</td>-->\\r\\n <td align=\"center\"><font color=\"#d11d1d\">同意维修</font></td>\\r\\n <td align=\"center\">\\r\\n <font color=\"#d11d1d\">已维修</font>\\r\\n </td>\\r\\n <!--<td>2025-12-29 09:25</td>-->\\r\\n <td align=\"center\"> </td>\\r\\n <td align=\"center\">挂账中</td>\\r\\n <td align=\"center\">纽斯特洪格玲</td>\\r\\n <td align=\"center\">0</td>\\r\\n <td align=\"center\"></td>\\r\\n <td align=\"center\" id=\"pre_120898\">\\r\\n <!--<span onclick=\"listTable.edit(this, \\'edit_pre_paid\\', 120898)\">0</span>-->\\r\\n \\t<!----><!---->\\r\\n <input type=\"text\" onblur=\"edit_pre_paid(120898,this.value)\" value=\"0\" size=\"6\"/>\\r\\n </td>\\r\\n <td align=\"center\">\\r\\n <select name=\"preId\" onchange=\"searchPay(120898,this.value)\" style=\"width:60px;\"><option value=\"0\">选择预收方式</option>\\r\\n \\t <option value=\"1\" >支付宝</option>\\r\\n <option value=\"2\" >微信</option>\\r\\n <option value=\"3\" >现金</option>\\r\\n <option value=\"4\" >POS</option>\\r\\n <option value=\"5\" >银行转账</option>\\r\\n </select>\\r\\n </td>\\r\\n <td align=\"center\">200.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">0.00</td>\\r\\n <td align=\"center\">\\r\\n \\t <a href=\"car_repair.php?act=edit&id=120898\">查看</a>\\r\\n \\t <!--维修中 已质检 已结算 的不可以删除-->\\r\\n </td>\\r\\n </tr>\\r\\n <tr>\\r\\n <td colspan=\"2\">\\r\\n </td>\\r\\n <td align=\"right\" nowrap=\"true\" colspan=\"25\">\\r\\n 总预收款:1212848&nbsp;&nbsp;总单据金额3064263.32&nbsp;&nbsp;总实收金额841906.69&nbsp;&nbsp;总优惠金额19269.01&nbsp;&nbsp;\\r\\n <!-- $Id: page.htm 14216 2008-03-10 02:27:21Z testyang $ -->\\r\\n <script type=\"text/javascript\" src=\"../js/utils.js\"></script> <div id=\"turn-page\">\\r\\n 总计 <span id=\"totalRecords\">5774</span>\\r\\n 个记录分为 <span id=\"totalPages\">385</span>\\r\\n 页当前第 <span id=\"pageCurrent\">1</span>\\r\\n 页,每页 <input type=\\'text\\' size=\\'3\\' id=\\'pageSize\\' value=\"15\" onkeypress=\"return listTable.changePageSize(event)\" />\\r\\n <span id=\"page-link\">\\r\\n <a href=\"javascript:listTable.gotoPageFirst()\">第一页</a>\\r\\n <a href=\"javascript:listTable.gotoPagePrev()\">上一页</a>\\r\\n <a href=\"javascript:listTable.gotoPageNext()\">下一页</a>\\r\\n <a href=\"javascript:listTable.gotoPageLast()\">最末页</a>\\r\\n <select id=\"gotoPage\" onchange=\"listTable.gotoPage(this.value)\">\\r\\n <option value=\\'1\\'>1</option><option value=\\'2\\'>2</option><option value=\\'3\\'>3</option><option value=\\'4\\'>4</option><option value=\\'385\\'>385</option> </select>\\r\\n </span>\\r\\n </div> </td>\\r\\n </tr>\\r\\n </table>\\r\\n\\r\\n'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T03:30:04.324729500Z",
"start_time": "2025-12-29T03:20:53.780286400Z"
}
},
"cell_type": "code",
"source": [
"import requests\n",
"from bs4 import BeautifulSoup\n",
"import pandas as pd\n",
"import time\n",
"from tqdm.notebook import tqdm\n",
"\n",
"# -------------------------- 1. 全局配置 --------------------------\n",
"cookies = {\n",
" 'ECSCP[admin_id]': '108',\n",
" 'ECSCP[admin_pass]': 'a7a7436dc3cdb9a0cf46db404553e361',\n",
" 'ECSCP[page_size]': '15',\n",
" 'ECS_LastCheckOrder': 'Mon%2C%2029%20Dec%2025%2002%3A01%3A30%20GMT',\n",
" 'real_ipd': '221.226.144.180',\n",
" 'ECSCP_ID': 'b038b6f65745ee9036bb43d1d1b48393c0e41cbe',\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",
" 'cache-control': 'no-cache',\n",
" 'content-type': 'application/x-www-form-urlencoded',\n",
" 'origin': 'https://tejialuntai.com',\n",
" 'pragma': 'no-cache',\n",
" 'priority': 'u=1, i',\n",
" 'referer': 'https://tejialuntai.com/admin2/car_repair.php?act=list',\n",
" 'sec-ch-ua': '\"Microsoft Edge\";v=\"143\", \"Chromium\";v=\"143\", \"Not A(Brand\";v=\"24\"',\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/143.0.0.0 Safari/537.36 Edg/143.0.0.0',\n",
"}\n",
"\n",
"params = {'is_ajax': '1'}\n",
"\n",
"base_data = {\n",
" 'act': 'query', 'repair_id': '', 'user_name': '', 'note_name': '', 'carnumber': '', 'into_fa': '',\n",
" 'price_offer': '0', 'clear': '0', 'is_invalid': '0', 'insurance_id': '0', 'suer_id': '0',\n",
" 'choice_time': '0', 'inyear': '0', 'intime': '0', 'inday': '0', 'is_completed': '0',\n",
" 'car_id': '0', 'wanmsg': '', 'record_count': '5774', 'page_size': '15', 'page': '1',\n",
" 'page_count': '385', 'start': '0',\n",
"}\n",
"\n",
"# -------------------------- 2. 核心功能函数 --------------------------\n",
"\n",
"def get_total_pages():\n",
" \"\"\"获取总页数\"\"\"\n",
" try:\n",
" response = requests.post(\n",
" url='https://tejialuntai.com/admin2/car_repair.php',\n",
" params=params, cookies=cookies, headers=headers, data=base_data, timeout=15\n",
" )\n",
" response.raise_for_status()\n",
" json_result = response.json()\n",
" html_content = json_result.get('content', '')\n",
"\n",
" if not html_content: return None\n",
" soup = BeautifulSoup(html_content, 'html.parser')\n",
" total_pages_span = soup.find('span', id='totalPages')\n",
" return int(total_pages_span.text) if total_pages_span else 1\n",
" except Exception as e:\n",
" print(f\"获取总页数失败: {e}\")\n",
" return None\n",
"\n",
"def scrape_first_page():\n",
" \"\"\"\n",
" 【新函数】专门用于抓取第一页,同时返回表头和数据。\n",
" \"\"\"\n",
" print(\"正在抓取第 1 页以确定表头和初始数据...\")\n",
" try:\n",
" response = requests.post(\n",
" url='https://tejialuntai.com/admin2/car_repair.php',\n",
" params=params, cookies=cookies, headers=headers, data=base_data, timeout=15\n",
" )\n",
" response.raise_for_status()\n",
" json_result = response.json()\n",
" html_content = json_result.get('content', '')\n",
"\n",
" if not html_content: return None, []\n",
"\n",
" soup = BeautifulSoup(html_content, 'html.parser')\n",
" target_table = soup.find('table')\n",
" if not target_table: return None, []\n",
"\n",
" # 1. 提取表头\n",
" headers_list = []\n",
" header_cells = target_table.find('tr').find_all(['th', 'td'])\n",
" for cell in header_cells:\n",
" cell_text = cell.get_text(strip=True)\n",
" if cell_text and cell_text != '全选':\n",
" headers_list.append(cell_text)\n",
" if headers_list and headers_list[0] == '车主':\n",
" headers_list.insert(0, '维修单号')\n",
"\n",
" # 2. 提取第一页数据\n",
" page_data = []\n",
" for tr in target_table.find_all('tr')[1:]:\n",
" if not tr.get('id') or not tr.get('id').startswith('rp_'): continue\n",
" cells = tr.find_all('td')\n",
" row_data = {}\n",
" for idx, cell in enumerate(cells):\n",
" if idx < len(headers_list):\n",
" input_tag = cell.find('input', {'type': 'text'})\n",
" select_tag = cell.find('select')\n",
" cell_text = \"\"\n",
" if input_tag and input_tag.get('value'):\n",
" cell_text = input_tag['value'].strip()\n",
" elif select_tag:\n",
" selected_opt = select_tag.find('option', selected=True)\n",
" cell_text = selected_opt.get_text(strip=True) if selected_opt else \"\"\n",
" else:\n",
" cell_text = cell.get_text(strip=True)\n",
" row_data[headers_list[idx]] = cell_text\n",
" page_data.append(row_data)\n",
"\n",
" print(f\"第 1 页抓取完成,获取 {len(page_data)} 条记录。\")\n",
" return headers_list, page_data\n",
"\n",
" except Exception as e:\n",
" print(f\"抓取第一页失败: {e}\")\n",
" return None, []\n",
"\n",
"def scrape_page(page_num, headers_list, page_size=15):\n",
" \"\"\"\n",
" 【修正后】用于抓取除第一页外的其他页面,只返回数据。\n",
" \"\"\"\n",
" start_record = (page_num - 1) * page_size\n",
" current_data = base_data.copy()\n",
" current_data['page'] = str(page_num)\n",
" current_data['start'] = str(start_record)\n",
"\n",
" try:\n",
" response = requests.post(\n",
" url='https://tejialuntai.com/admin2/car_repair.php',\n",
" params=params, cookies=cookies, headers=headers, data=current_data, timeout=15\n",
" )\n",
" response.raise_for_status()\n",
" json_result = response.json()\n",
" html_content = json_result.get('content', '')\n",
"\n",
" if not html_content: return []\n",
"\n",
" soup = BeautifulSoup(html_content, 'html.parser')\n",
" target_table = soup.find('table')\n",
" if not target_table: return []\n",
"\n",
" page_data = []\n",
" for tr in target_table.find_all('tr')[1:]:\n",
" if not tr.get('id') or not tr.get('id').startswith('rp_'): continue\n",
" cells = tr.find_all('td')\n",
" row_data = {}\n",
" for idx, cell in enumerate(cells):\n",
" if idx < len(headers_list):\n",
" input_tag = cell.find('input', {'type': 'text'})\n",
" select_tag = cell.find('select')\n",
" cell_text = \"\"\n",
" if input_tag and input_tag.get('value'):\n",
" cell_text = input_tag['value'].strip()\n",
" elif select_tag:\n",
" selected_opt = select_tag.find('option', selected=True)\n",
" cell_text = selected_opt.get_text(strip=True) if selected_opt else \"\"\n",
" else:\n",
" cell_text = cell.get_text(strip=True)\n",
" row_data[headers_list[idx]] = cell_text\n",
" page_data.append(row_data)\n",
" return page_data\n",
" except Exception as e:\n",
" print(f\"\\n第 {page_num} 页处理失败: {e}\")\n",
" return []\n",
"\n",
"# -------------------------- 3. Jupyter主执行流程 --------------------------\n",
"\n",
"# 1. 获取总页数\n",
"print(\"正在获取总页数...\")\n",
"total_pages = get_total_pages()\n",
"\n",
"all_data = []\n",
"all_headers = []\n",
"\n",
"if total_pages:\n",
" print(f\"检测到总共有 {total_pages} 页。准备开始抓取...\")\n",
"\n",
" # 2. 【修正点】调用新函数抓取第一页,获取表头和数据\n",
" all_headers, first_page_data = scrape_first_page()\n",
"\n",
" if not all_headers:\n",
" print(\"错误:无法从第一页获取表头,程序终止。\")\n",
" else:\n",
" all_data.extend(first_page_data)\n",
"\n",
" # 3. 循环抓取剩余页面\n",
" if total_pages > 1:\n",
" for page in tqdm(range(2, total_pages + 1), desc=\"抓取进度\"):\n",
" page_data = scrape_page(page, all_headers)\n",
" if page_data:\n",
" all_data.extend(page_data)\n",
" time.sleep(0.5) # 适当降低请求频率\n",
"\n",
" # 4. 转换为DataFrame并显示\n",
" print(\"\\n===== 所有数据抓取完成!=====\")\n",
" df = pd.DataFrame(all_data, columns=all_headers)\n",
" print(f\"共抓取 {len(df)} 条记录。\")\n",
"\n",
" # 在Jupyter中直接显示DataFrame\n",
" display(df.head()) # 只显示前5行预览\n",
"\n",
" # 5. 导出到Excel\n",
" file_path = \"汽车维修记录_全部数据.xlsx\"\n",
" try:\n",
" df.to_excel(file_path, index=False, engine='openpyxl')\n",
" print(f\"\\n🎉 所有数据已成功导出至:{file_path}\")\n",
" except Exception as e:\n",
" print(f\"导出Excel失败: {e}\")\n",
"else:\n",
" print(\"无法获取总页数,程序终止。\")"
],
"id": "7439dfbc38475085",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在获取总页数...\n",
"检测到总共有 385 页。准备开始抓取...\n",
"正在抓取第 1 页以确定表头和初始数据...\n",
"第 1 页抓取完成,获取 15 条记录。\n"
]
},
{
"data": {
"text/plain": [
"抓取进度: 0%| | 0/384 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "7471ac3d122b42ae8ee93bf9c987d922"
}
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"===== 所有数据抓取完成!=====\n",
"共抓取 5774 条记录。\n"
]
},
{
"data": {
"text/plain": [
" 维修单号 车主 名称 车牌号 往来描述 车型 保险公司 接待员 进厂公里数 \\\n",
"0 120993 13655076051 梅小青 闽AH5L11 宝马 纽斯特洪格玲 11 \n",
"1 120976 13694889302 李亚峰 赣AMQ691 宝马 纽斯特洪格玲 88443 \n",
"2 120956 18970093030 洪达 赣M60606 洪达 广汽传祺 纽斯特洪格玲 11 \n",
"3 120954 15070852061 邹女士 赣AP13M8 奇瑞 纽斯特王君 5515 \n",
"4 120952 15912345678 骏驰 赣AT90M7 骏驰 纽斯特洪格玲 11 \n",
"\n",
" 进厂时间 ... 结算状态 报价员 结算员 结算时间 预收款 预收方式 单据总额 实收金额 \\\n",
"0 2025-12-28 17:03:59 ... 挂账中 0 0 0 0.00 0.00 \n",
"1 2025-12-28 13:12:27 ... 挂账中 纽斯特王君 0 0 200.00 0.00 \n",
"2 2025-12-28 10:04:02 ... 挂账中 0 0 0 0.00 0.00 \n",
"3 2025-12-28 09:56:52 ... 挂账中 纽斯特王君 0 0 260.00 0.00 \n",
"4 2025-12-28 09:33:10 ... 挂账中 纽斯特洪格玲 0 0 500.00 0.00 \n",
"\n",
" 优惠金额 操作 \n",
"0 0.00 查看删除 \n",
"1 0.00 查看 \n",
"2 0.00 查看删除 \n",
"3 0.00 查看删除 \n",
"4 0.00 查看删除 \n",
"\n",
"[5 rows x 26 columns]"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>维修单号</th>\n",
" <th>车主</th>\n",
" <th>名称</th>\n",
" <th>车牌号</th>\n",
" <th>往来描述</th>\n",
" <th>车型</th>\n",
" <th>保险公司</th>\n",
" <th>接待员</th>\n",
" <th>进厂公里数</th>\n",
" <th>进厂时间</th>\n",
" <th>...</th>\n",
" <th>结算状态</th>\n",
" <th>报价员</th>\n",
" <th>结算员</th>\n",
" <th>结算时间</th>\n",
" <th>预收款</th>\n",
" <th>预收方式</th>\n",
" <th>单据总额</th>\n",
" <th>实收金额</th>\n",
" <th>优惠金额</th>\n",
" <th>操作</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>120993</td>\n",
" <td>13655076051</td>\n",
" <td>梅小青</td>\n",
" <td>闽AH5L11</td>\n",
" <td></td>\n",
" <td>宝马</td>\n",
" <td></td>\n",
" <td>纽斯特洪格玲</td>\n",
" <td>11</td>\n",
" <td>2025-12-28 17:03:59</td>\n",
" <td>...</td>\n",
" <td>挂账中</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>查看删除</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>120976</td>\n",
" <td>13694889302</td>\n",
" <td>李亚峰</td>\n",
" <td>赣AMQ691</td>\n",
" <td></td>\n",
" <td>宝马</td>\n",
" <td></td>\n",
" <td>纽斯特洪格玲</td>\n",
" <td>88443</td>\n",
" <td>2025-12-28 13:12:27</td>\n",
" <td>...</td>\n",
" <td>挂账中</td>\n",
" <td>纽斯特王君</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>200.00</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>查看</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>120956</td>\n",
" <td>18970093030</td>\n",
" <td>洪达</td>\n",
" <td>赣M60606</td>\n",
" <td>洪达</td>\n",
" <td>广汽传祺</td>\n",
" <td></td>\n",
" <td>纽斯特洪格玲</td>\n",
" <td>11</td>\n",
" <td>2025-12-28 10:04:02</td>\n",
" <td>...</td>\n",
" <td>挂账中</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>查看删除</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>120954</td>\n",
" <td>15070852061</td>\n",
" <td>邹女士</td>\n",
" <td>赣AP13M8</td>\n",
" <td></td>\n",
" <td>奇瑞</td>\n",
" <td></td>\n",
" <td>纽斯特王君</td>\n",
" <td>5515</td>\n",
" <td>2025-12-28 09:56:52</td>\n",
" <td>...</td>\n",
" <td>挂账中</td>\n",
" <td>纽斯特王君</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>260.00</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>查看删除</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>120952</td>\n",
" <td>15912345678</td>\n",
" <td>骏驰</td>\n",
" <td>赣AT90M7</td>\n",
" <td>骏驰</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>纽斯特洪格玲</td>\n",
" <td>11</td>\n",
" <td>2025-12-28 09:33:10</td>\n",
" <td>...</td>\n",
" <td>挂账中</td>\n",
" <td>纽斯特洪格玲</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>500.00</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>查看删除</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 26 columns</p>\n",
"</div>"
]
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"🎉 所有数据已成功导出至:汽车维修记录_全部数据.xlsx\n"
]
}
],
"execution_count": 2
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 历史维修记录",
"id": "a1f320fe80c616af"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T05:38:25.310242300Z",
"start_time": "2025-12-29T03:36:00.499070500Z"
}
},
"cell_type": "code",
"source": [
"import requests\n",
"import pandas as pd\n",
"from bs4 import BeautifulSoup\n",
"import time\n",
"\n",
"# 关键步骤 1: 从 tqdm.notebook 导入 tqdm\n",
"from tqdm.notebook import tqdm\n",
"\n",
"# 1. 读取Excel中的id\n",
"try:\n",
" df = pd.read_excel(\"汽车维修记录_全部数据.xlsx\", sheet_name=0)\n",
"except FileNotFoundError:\n",
" print(\"错误:找不到 '汽车维修记录_全部数据.xlsx' 文件。请检查文件名和路径。\")\n",
" exit()\n",
"\n",
"# 2. 定义请求参数\n",
"cookies = {\n",
" 'ECSCP[admin_id]': '108',\n",
" 'ECSCP[admin_pass]': 'a7a7436dc3cdb9a0cf46db404553e361',\n",
" 'ECSCP[page_size]': '15',\n",
" 'ECS_LastCheckOrder': 'Mon%2C%2029%20Dec%202025%2002%3A49%3A33%20GMT',\n",
" 'real_ipd': '221.226.144.180',\n",
" 'ECSCP_ID': 'b038b6f65745ee9036bb43d1d1b48393c0e41cbe',\n",
"}\n",
"\n",
"request_headers = {\n",
" 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',\n",
" 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" 'cache-control': 'no-cache',\n",
" 'pragma': 'no-cache',\n",
" 'priority': 'u=0, i',\n",
" 'referer': 'https://tejialuntai.com/admin2/car_repair.php?act=list',\n",
" 'sec-ch-ua': '\"Microsoft Edge\";v=\"143\", \"Chromium\";v=\"143\", \"Not A(Brand\";v=\"24\"',\n",
" 'sec-ch-ua-mobile': '?0',\n",
" 'sec-ch-ua-platform': '\"Windows\"',\n",
" 'sec-fetch-dest': 'frame',\n",
" 'sec-fetch-mode': 'navigate',\n",
" 'sec-fetch-site': 'same-origin',\n",
" 'sec-fetch-user': '?1',\n",
" 'upgrade-insecure-requests': '1',\n",
" 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0',\n",
"}\n",
"\n",
"# 3. 遍历df中的id,提取数据\n",
"all_data = []\n",
"\n",
"# 关键步骤 2: 使用 tqdm 包装你的 for 循环\n",
"# tqdm() 需要知道总共有多少个迭代项,所以我们传入 df.itertuples()\n",
"# desc 参数可以为进度条添加描述文字\n",
"for row in tqdm(df.itertuples(index=False), total=len(df), desc=\"正在爬取数据\"):\n",
" repair_id = row.维修单号\n",
"\n",
" params = {'act': 'edit', 'id': repair_id}\n",
"\n",
" try:\n",
" response = requests.get(\n",
" 'https://tejialuntai.com/admin2/car_repair.php',\n",
" params=params,\n",
" cookies=cookies,\n",
" headers=request_headers,\n",
" timeout=10\n",
" )\n",
" response.raise_for_status()\n",
"\n",
" html_content = response.text\n",
" soup = BeautifulSoup(html_content, 'html.parser')\n",
"\n",
" car_plate_elem = soup.find('td', string=lambda text: text and '车牌号:' in text)\n",
" if not car_plate_elem:\n",
" # tqdm.write() 可以在不破坏进度条显示的情况下打印信息\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到车牌号,已跳过。\")\n",
" continue\n",
"\n",
" car_plate_td = car_plate_elem.find_next_sibling('td')\n",
" if not car_plate_td:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中找到车牌号标签,但未找到其后的兄弟元素,已跳过。\")\n",
" continue\n",
"\n",
" car_plate = car_plate_td.text.strip().split('(')[0]\n",
"\n",
" quote_table = soup.find('table', style='width:85%')\n",
" if not quote_table:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到报价表格,已跳过。\")\n",
" continue\n",
"\n",
" table_headers = [th.text.strip() for th in quote_table.find_all('th')]\n",
" if not table_headers:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到表头,已跳过。\")\n",
" continue\n",
"\n",
" quote_data = []\n",
" for tr in quote_table.find_all('tr')[1:]:\n",
" row_data = [td.text.strip() for td in tr.find_all('td')]\n",
" if len(row_data) == len(table_headers):\n",
" quote_data.append(row_data)\n",
"\n",
" if not quote_data:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到有效的行数据,已跳过。\")\n",
" continue\n",
"\n",
" quote_df = pd.DataFrame(quote_data, columns=table_headers)\n",
" quote_df['车牌号'] = car_plate\n",
" all_data.append(quote_df)\n",
"\n",
" time.sleep(0.2)\n",
"\n",
" except requests.exceptions.RequestException as e:\n",
" tqdm.write(f\"错误:处理维修单 {repair_id} 时发生网络请求错误: {e}\")\n",
" continue\n",
" except Exception as e:\n",
" tqdm.write(f\"错误:处理维修单 {repair_id} 时发生未知错误: {e}\")\n",
" continue\n",
"\n",
"# 4. 合并所有数据并保存\n",
"if all_data:\n",
" final_df = pd.concat(all_data, ignore_index=True)\n",
" try:\n",
" final_df.to_excel(\"汽车维修报价项目_汇总.xlsx\", index=False)\n",
" print(\"\\n数据提取完成,已保存到 '汽车维修报价项目_汇总.xlsx'\")\n",
" except Exception as e:\n",
" print(f\"错误:保存Excel文件失败: {e}\")\n",
"else:\n",
" print(\"\\n未能提取到任何有效数据,未生成Excel文件。\")"
],
"id": "1eccb5f27833bc95",
"outputs": [
{
"data": {
"text/plain": [
"正在爬取数据: 0%| | 0/5774 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "f64db4f1e18c46df8517cc8903f8cfcd"
}
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"数据提取完成,已保存到 '汽车维修报价项目_汇总.xlsx'\n"
]
}
],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T05:39:29.510365600Z",
"start_time": "2025-12-29T05:39:29.405387400Z"
}
},
"cell_type": "code",
"source": "final_df",
"id": "8ccc3a5fe11d9e24",
"outputs": [
{
"data": {
"text/plain": [
" 分类 报修内容 项目 名称 数量 单位 \\\n",
"0 机电 更换水泵总成 请输入产品名称 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"1 漆面 前杠左半部进口漆 前杠左半部进口漆(校修) 请输入产品名称 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"2 钣金 前杠 前保(校修) 请输入产品名称 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"3 机电 更换水箱 请输入产品名称 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"4 机电 保养 壹达530N(换件) 请输入产品名称 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"... .. ... ... ... .. ... \n",
"16984 机电 空调不制冷 冷凝器(换件) 冷凝器 1 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"16985 机电 空调不制冷 冷媒(换件) 冷媒 3 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"16986 机电 动平衡 四轮动平衡(校修) 四轮动平衡 4 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"16987 漆面 后盖喷漆 后盖喷漆(校修) 后盖喷漆 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"16988 钣金 漏报 钣金(校修) 钣金 单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包 \n",
"\n",
" 单价 金额 是否采购 采购留言 ... 说明 预检时间 \\\n",
"0 0.00 采购方式\\n配件商自己 留言 ... 随便说明0 \n",
"1 200.00 采购方式\\n配件商自己 留言 ... 随便说明0 2025-12-28 13:12:27 \n",
"2 0.00 采购方式\\n配件商自己 留言 ... 随便说明0 2025-12-28 14:29:07 \n",
"3 0.00 采购方式\\n配件商自己 留言 ... 随便说明0 \n",
"4 260.00 采购方式\\n配件商自己 留言 ... 随便说明0 2025-12-28 16:25:28 \n",
"... ... ... ... ... ... ... ... \n",
"16984 280.00 280.00 采购方式\\n配件商自己 留言 ... 随便说明0 2023-07-29 11:06:36 \n",
"16985 35.00 105.00 采购方式\\n配件商自己 留言 ... 随便说明0 2023-07-29 11:06:36 \n",
"16986 20.00 80.00 采购方式\\n配件商自己 留言 ... 随便说明0 2023-07-28 10:50:58 \n",
"16987 0.00 采购方式\\n配件商自己 留言 ... 随便说明0 2023-07-28 10:27:19 \n",
"16988 0.00 采购方式\\n配件商自己 留言 ... 随便说明0 2023-07-28 10:44:32 \n",
"\n",
" 预检员 预检图片 维修工 开始时间 维修情况 \\\n",
"0 无 () 未维修 \n",
"1 纽斯特倪兵 无 纽斯特倪兵(note) 2025-12-29 09:35 维修完成 \n",
"2 纽斯特吴杨州 无 纽斯特吴杨州(note) 2025-12-29 09:19 维修完成 \n",
"3 无 () 未维修 \n",
"4 纽斯特易林平 无 () 0 未维修 \n",
"... ... ... ... ... ... \n",
"16984 纽斯特胡神统 无 纽斯特胡神统(note) 2023-07-31 11:31 维修完成 \n",
"16985 纽斯特胡神统 无 纽斯特胡神统(note) 2023-07-31 11:31 维修完成 \n",
"16986 纽斯特胡神统 无 纽斯特胡神统(note) 2023-07-28 10:58 维修完成 \n",
"16987 纽斯特倪兵 无 纽斯特倪兵(note) 2023-07-28 10:41 维修完成 \n",
"16988 纽斯特邓建明 无 纽斯特邓建明(note) 2023-07-28 10:44:32 维修完成 \n",
"\n",
" 完成时间 操作 车牌号 \n",
"0 清空价格 闽AH5L11 \n",
"1 2025-12-29 09:35 赣AMQ691 \n",
"2 2025-12-29 09:19 赣AMQ691 \n",
"3 清空价格 赣M60606 \n",
"4 0 清空价格 赣AP13M8 \n",
"... ... ... ... \n",
"16984 2023-08-05 11:14 赣A50N85 \n",
"16985 2023-08-05 11:14 赣A50N85 \n",
"16986 2023-07-28 11:14 粤SAG866 \n",
"16987 2023-08-07 14:52 赣ATS267 \n",
"16988 2023-07-28 10:44:32 赣ATS267 \n",
"\n",
"[16989 rows x 25 columns]"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>分类</th>\n",
" <th>报修内容</th>\n",
" <th>项目</th>\n",
" <th>名称</th>\n",
" <th>数量</th>\n",
" <th>单位</th>\n",
" <th>单价</th>\n",
" <th>金额</th>\n",
" <th>是否采购</th>\n",
" <th>采购留言</th>\n",
" <th>...</th>\n",
" <th>说明</th>\n",
" <th>预检时间</th>\n",
" <th>预检员</th>\n",
" <th>预检图片</th>\n",
" <th>维修工</th>\n",
" <th>开始时间</th>\n",
" <th>维修情况</th>\n",
" <th>完成时间</th>\n",
" <th>操作</th>\n",
" <th>车牌号</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>机电</td>\n",
" <td>更换水泵总成</td>\n",
" <td></td>\n",
" <td>请输入产品名称</td>\n",
" <td></td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td></td>\n",
" <td>0.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>无</td>\n",
" <td>()</td>\n",
" <td></td>\n",
" <td>未维修</td>\n",
" <td></td>\n",
" <td>清空价格</td>\n",
" <td>闽AH5L11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>漆面</td>\n",
" <td>前杠左半部进口漆</td>\n",
" <td>前杠左半部进口漆(校修)</td>\n",
" <td>请输入产品名称</td>\n",
" <td></td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td></td>\n",
" <td>200.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2025-12-28 13:12:27</td>\n",
" <td>纽斯特倪兵</td>\n",
" <td>无</td>\n",
" <td>纽斯特倪兵(note)</td>\n",
" <td>2025-12-29 09:35</td>\n",
" <td>维修完成</td>\n",
" <td>2025-12-29 09:35</td>\n",
" <td></td>\n",
" <td>赣AMQ691</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>钣金</td>\n",
" <td>前杠</td>\n",
" <td>前保(校修)</td>\n",
" <td>请输入产品名称</td>\n",
" <td></td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td></td>\n",
" <td>0.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2025-12-28 14:29:07</td>\n",
" <td>纽斯特吴杨州</td>\n",
" <td>无</td>\n",
" <td>纽斯特吴杨州(note)</td>\n",
" <td>2025-12-29 09:19</td>\n",
" <td>维修完成</td>\n",
" <td>2025-12-29 09:19</td>\n",
" <td></td>\n",
" <td>赣AMQ691</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>机电</td>\n",
" <td>更换水箱</td>\n",
" <td></td>\n",
" <td>请输入产品名称</td>\n",
" <td></td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td></td>\n",
" <td>0.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>无</td>\n",
" <td>()</td>\n",
" <td></td>\n",
" <td>未维修</td>\n",
" <td></td>\n",
" <td>清空价格</td>\n",
" <td>赣M60606</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>机电</td>\n",
" <td>保养</td>\n",
" <td>壹达530N(换件)</td>\n",
" <td>请输入产品名称</td>\n",
" <td></td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td></td>\n",
" <td>260.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2025-12-28 16:25:28</td>\n",
" <td>纽斯特易林平</td>\n",
" <td>无</td>\n",
" <td>()</td>\n",
" <td>0</td>\n",
" <td>未维修</td>\n",
" <td>0</td>\n",
" <td>清空价格</td>\n",
" <td>赣AP13M8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16984</th>\n",
" <td>机电</td>\n",
" <td>空调不制冷</td>\n",
" <td>冷凝器(换件)</td>\n",
" <td>冷凝器</td>\n",
" <td>1</td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td>280.00</td>\n",
" <td>280.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2023-07-29 11:06:36</td>\n",
" <td>纽斯特胡神统</td>\n",
" <td>无</td>\n",
" <td>纽斯特胡神统(note)</td>\n",
" <td>2023-07-31 11:31</td>\n",
" <td>维修完成</td>\n",
" <td>2023-08-05 11:14</td>\n",
" <td></td>\n",
" <td>赣A50N85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16985</th>\n",
" <td>机电</td>\n",
" <td>空调不制冷</td>\n",
" <td>冷媒(换件)</td>\n",
" <td>冷媒</td>\n",
" <td>3</td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td>35.00</td>\n",
" <td>105.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2023-07-29 11:06:36</td>\n",
" <td>纽斯特胡神统</td>\n",
" <td>无</td>\n",
" <td>纽斯特胡神统(note)</td>\n",
" <td>2023-07-31 11:31</td>\n",
" <td>维修完成</td>\n",
" <td>2023-08-05 11:14</td>\n",
" <td></td>\n",
" <td>赣A50N85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16986</th>\n",
" <td>机电</td>\n",
" <td>动平衡</td>\n",
" <td>四轮动平衡(校修)</td>\n",
" <td>四轮动平衡</td>\n",
" <td>4</td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td>20.00</td>\n",
" <td>80.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2023-07-28 10:50:58</td>\n",
" <td>纽斯特胡神统</td>\n",
" <td>无</td>\n",
" <td>纽斯特胡神统(note)</td>\n",
" <td>2023-07-28 10:58</td>\n",
" <td>维修完成</td>\n",
" <td>2023-07-28 11:14</td>\n",
" <td></td>\n",
" <td>粤SAG866</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16987</th>\n",
" <td>漆面</td>\n",
" <td>后盖喷漆</td>\n",
" <td>后盖喷漆(校修)</td>\n",
" <td>后盖喷漆</td>\n",
" <td></td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td></td>\n",
" <td>0.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2023-07-28 10:27:19</td>\n",
" <td>纽斯特倪兵</td>\n",
" <td>无</td>\n",
" <td>纽斯特倪兵(note)</td>\n",
" <td>2023-07-28 10:41</td>\n",
" <td>维修完成</td>\n",
" <td>2023-08-07 14:52</td>\n",
" <td></td>\n",
" <td>赣ATS267</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16988</th>\n",
" <td>钣金</td>\n",
" <td>漏报</td>\n",
" <td>钣金(校修)</td>\n",
" <td>钣金</td>\n",
" <td></td>\n",
" <td>单位\\n套\\n桶\\n根\\n张\\n只\\nL\\n个\\n次\\n包</td>\n",
" <td></td>\n",
" <td>0.00</td>\n",
" <td>采购方式\\n配件商自己</td>\n",
" <td>留言</td>\n",
" <td>...</td>\n",
" <td>随便说明0</td>\n",
" <td>2023-07-28 10:44:32</td>\n",
" <td>纽斯特邓建明</td>\n",
" <td>无</td>\n",
" <td>纽斯特邓建明(note)</td>\n",
" <td>2023-07-28 10:44:32</td>\n",
" <td>维修完成</td>\n",
" <td>2023-07-28 10:44:32</td>\n",
" <td></td>\n",
" <td>赣ATS267</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>16989 rows × 25 columns</p>\n",
"</div>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T05:43:46.270524600Z",
"start_time": "2025-12-29T05:43:29.356879400Z"
}
},
"cell_type": "code",
"source": [
"import requests\n",
"import pandas as pd\n",
"from bs4 import BeautifulSoup\n",
"import time\n",
"from tqdm.notebook import tqdm\n",
"\n",
"# 1. 读取Excel中的id\n",
"try:\n",
" df = pd.read_excel(\"汽车维修记录_全部数据.xlsx\", sheet_name=0)\n",
"except FileNotFoundError:\n",
" print(\"错误:找不到 '汽车维修记录_全部数据.xlsx' 文件。请检查文件名和路径。\")\n",
" exit()\n",
"\n",
"# 2. 定义请求参数\n",
"cookies = {\n",
" 'ECSCP[admin_id]': '108',\n",
" 'ECSCP[admin_pass]': 'a7a7436dc3cdb9a0cf46db404553e361',\n",
" 'ECSCP[page_size]': '15',\n",
" 'ECS_LastCheckOrder': 'Mon%2C%2029%20Dec%202025%2002%3A49%3A33%20GMT',\n",
" 'real_ipd': '221.226.144.180',\n",
" 'ECSCP_ID': 'b038b6f65745ee9036bb43d1d1b48393c0e41cbe',\n",
"}\n",
"\n",
"request_headers = {\n",
" 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',\n",
" 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',\n",
" 'cache-control': 'no-cache',\n",
" 'pragma': 'no-cache',\n",
" 'priority': 'u=0, i',\n",
" 'referer': 'https://tejialuntai.com/admin2/car_repair.php?act=list',\n",
" 'sec-ch-ua': '\"Microsoft Edge\";v=\"143\", \"Chromium\";v=\"143\", \"Not A(Brand\";v=\"24\"',\n",
" 'sec-ch-ua-mobile': '?0',\n",
" 'sec-ch-ua-platform': '\"Windows\"',\n",
" 'sec-fetch-dest': 'frame',\n",
" 'sec-fetch-mode': 'navigate',\n",
" 'sec-fetch-site': 'same-origin',\n",
" 'sec-fetch-user': '?1',\n",
" 'upgrade-insecure-requests': '1',\n",
" 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0',\n",
"}\n",
"\n",
"# 3. 遍历df中的id,提取数据\n",
"all_data = []\n",
"\n",
"for row in tqdm(df.itertuples(index=False), total=len(df), desc=\"正在爬取数据\"):\n",
" repair_id = row.维修单号\n",
"\n",
" params = {'act': 'edit', 'id': repair_id}\n",
"\n",
" try:\n",
" response = requests.get(\n",
" 'https://tejialuntai.com/admin2/car_repair.php',\n",
" params=params,\n",
" cookies=cookies,\n",
" headers=request_headers,\n",
" timeout=10\n",
" )\n",
" response.raise_for_status()\n",
"\n",
" html_content = response.text\n",
" soup = BeautifulSoup(html_content, 'html.parser')\n",
"\n",
" car_plate_elem = soup.find('td', string=lambda text: text and '车牌号:' in text)\n",
" if not car_plate_elem:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到车牌号,已跳过。\")\n",
" continue\n",
"\n",
" car_plate_td = car_plate_elem.find_next_sibling('td')\n",
" if not car_plate_td:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中找到车牌号标签,但未找到其后的兄弟元素,已跳过。\")\n",
" continue\n",
"\n",
" car_plate = car_plate_td.text.strip().split('(')[0]\n",
"\n",
" quote_table = soup.find('table', style='width:85%')\n",
" if not quote_table:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到报价表格,已跳过。\")\n",
" continue\n",
"\n",
" table_headers = [th.text.strip() for th in quote_table.find_all('th')]\n",
" if not table_headers:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到表头,已跳过。\")\n",
" continue\n",
"\n",
" quote_data = []\n",
" for tr in quote_table.find_all('tr')[1:]:\n",
" row_data = [td.text.strip() for td in tr.find_all('td')]\n",
" if len(row_data) == len(table_headers):\n",
" quote_data.append(row_data)\n",
"\n",
" if not quote_data:\n",
" tqdm.write(f\"警告:在维修单 {repair_id} 的页面中未找到有效的行数据,已跳过。\")\n",
" continue\n",
"\n",
" quote_df = pd.DataFrame(quote_data, columns=table_headers)\n",
"\n",
" # --- 核心修改点 ---\n",
" # 在将DataFrame添加到列表前,为其添加'维修单号'和'车牌号'列\n",
" quote_df['维修单号'] = repair_id\n",
" quote_df['车牌号'] = car_plate\n",
" # -------------------\n",
"\n",
" all_data.append(quote_df)\n",
"\n",
" time.sleep(0.5)\n",
"\n",
" except requests.exceptions.RequestException as e:\n",
" tqdm.write(f\"错误:处理维修单 {repair_id} 时发生网络请求错误: {e}\")\n",
" continue\n",
" except Exception as e:\n",
" tqdm.write(f\"错误:处理维修单 {repair_id} 时发生未知错误: {e}\")\n",
" continue\n",
"\n",
"# 4. 合并所有数据并保存\n",
"if all_data:\n",
" final_df = pd.concat(all_data, ignore_index=True)\n",
" try:\n",
" final_df.to_excel(\"汽车维修报价项目_汇总.xlsx\", index=False)\n",
" print(\"\\n数据提取完成,已保存到 '汽车维修报价项目_汇总.xlsx'\")\n",
" except Exception as e:\n",
" print(f\"错误:保存Excel文件失败: {e}\")\n",
"else:\n",
" print(\"\\n未能提取到任何有效数据,未生成Excel文件。\")"
],
"id": "807a4c625b434fcd",
"outputs": [
{
"data": {
"text/plain": [
"正在爬取数据: 0%| | 0/5774 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "9c38f213fadb47c08f48b38f32adcac4"
}
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
}
],
"execution_count": null
}
],
"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
}