1320 lines
96 KiB
Plaintext
1320 lines
96 KiB
Plaintext
{
|
||
"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 总单据金额3064263.32 总实收金额841906.69 总优惠金额19269.01 \\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
|
||
}
|