{ "cells": [ { "metadata": {}, "cell_type": "markdown", "source": "", "id": "647cfbcdeaa27eb5" }, { "metadata": { "ExecuteTime": { "end_time": "2025-01-17T03:08:53.359083Z", "start_time": "2025-01-17T03:08:53.166826Z" } }, "cell_type": "code", "source": [ "import requests\n", "import pandas as pd\n", "\n", "header = {\n", " \"Host\": \"yqhm.vip5968.com\",\n", " \"Origin\": \"http://yqhm.vip5968.com\",\n", " \"Referer\": \"http://yqhm.vip5968.com/Module/Member/MemInfo.aspx?PID=42&MemCard=810076\",\n", " \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0\",\n", " \"X-Requested-With\": \"XMLHttpRequest\"\n", "}\n", "\n", "cookies = {\n", " \"ASP.NET_SessionId\": \"lzkml2bs2crzysshj2nutb5v\",\n", " \"TestCookie\": \"\",\n", " \"LoginState\": \"68AD1028E54520B1EDDB8584F2768630F73F7846610C020F0270B0E2C34FA16B27D3F2A5A659FD92\"\n", "}\n", "\n", "data = {\n", " \"Method\": \"MemInfoCountExpenseGet\",\n", " \"memid\": \"1185\"\n", "}\n", "\n", "url = 'http://yqhm.vip5968.com/AjaxService/Service.ashx?Method=MemInfoCountExpenseGet'\n", "\n", "res = requests.post(url=url, headers=header, cookies=cookies, data=data)\n", "data_list = res.json()\n", "\n", "for data in data_list:\n", " df = data.Dataframe()\n", " df.to_excel(f'成浩美车会员管理系统导出.xlsx')\n" ], "id": "4930c73284248d36", "outputs": [ { "data": { "text/plain": [ "{'List': [{'OrderAccount': '2025010617115616',\n", " 'OrderEndTime': '2900/1/1 0:00:00',\n", " 'OrderDetailID': '9897',\n", " 'OrderID': '9445',\n", " 'OrderAccount1': '2025010617115616',\n", " 'GoodsID': '272',\n", " 'GoodsDetailBidPrice': '0.0000',\n", " 'OrderDetailPrice': '580.0000',\n", " 'OrderDetailDiscountPrice': '580.0000',\n", " 'OrderDetailItemPoint': '0.0000',\n", " 'OrderDetailPoint': '0',\n", " 'OrderDetailNumber': '5',\n", " 'OrderDetailType': '1',\n", " 'OrderDetailStaffID': '0',\n", " 'OrderDetailCreateTime': '2025/1/6 17:12:06',\n", " 'OrderDetaiEndTime': '2900/1/1 0:00:00',\n", " 'OrderDetailRemark': '',\n", " 'OrderDetailOldID': '0',\n", " 'OrderDetailCountNum': '5',\n", " 'DeductGoodsID': '0',\n", " 'GoodsID1': '272',\n", " 'GoodsCode': '190623082115',\n", " 'GoodsName': '隐形车衣保养',\n", " 'GoodsNameCode': 'YXCYBY',\n", " 'GoodsPrice': '580.0000',\n", " 'GoodsUnit': '块',\n", " 'GoodsSalePercet': '0',\n", " 'GoodsClassID': '12',\n", " 'CommissionType': '0',\n", " 'CommissionNumber': '0',\n", " 'GoodsPoint': '0',\n", " 'MinPercent': '0',\n", " 'GoodsType': 'True',\n", " 'GoodsBidPrice': '0.0000',\n", " 'GoodsRemark': '',\n", " 'GoodsPicture': '',\n", " 'CreateShopID': '3',\n", " 'CreateUserID': '4',\n", " 'CreateTime': '2022/10/12 10:51:49',\n", " 'GoodsNumberLowest': '0',\n", " 'GoodsWeiXinPrice': '0.0000',\n", " 'IsPutAway': 'False'}]}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 2 }, { "metadata": {}, "cell_type": "markdown", "source": "请求列表", "id": "cd5414f2e299d35a" }, { "cell_type": "code", "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2025-01-18T02:28:51.436282Z", "start_time": "2025-01-18T02:28:51.300809Z" } }, "source": [ "import requests\n", "import pandas as pd\n", "from bs4 import BeautifulSoup\n", "from tqdm import tqdm\n", "\n", "headers = {\n", " \"cookie\": \"td_cookie=2691013127; ASP.NET_SessionId=lzkml2bs2crzysshj2nutb5v; TestCookie=; LoginState=68AD1028E54520B1EDDB8584F2768630F73F7846610C020FB26F23CFB749BC377C96B23EE9919A65\",\n", " \"host\": \"yqhm.vip5968.com\",\n", " \"upgrade-insecure-requests\": \"1\",\n", " \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0\"\n", "}\n", "viewstate = None\n", "eventvalidation = None\n", "all_data_list = []\n", "for page in tqdm(range(1, 56)): # 总页数注意+1\n", " url = 'http://yqhm.vip5968.com/Module/Member/MemList.aspx?PID=3'\n", "\n", " data = {\n", " \"PID\": \"3\",\n", " \"__EVENTTARGET\": \"NetPager\",\n", " \"__EVENTARGUMENT\": page,\n", " \"__VIEWSTATE\": viewstate,\n", " \"__EVENTVALIDATION\": eventvalidation\n", "\n", " }\n", "\n", " res = requests.post(url=url, headers=headers, data=data)\n", " print(res.text)\n", " soup = BeautifulSoup(res.text, 'html.parser')\n", "\n", " viewstate = soup.find('input', {'id': '__VIEWSTATE'})['value']\n", " eventvalidation = soup.find('input', {'id': '__EVENTVALIDATION'})['value']\n", "\n", " input_tags = soup.find_all('input', {'id': lambda x: x and 'rptDataList_chkItem' in x})\n", "\n", " # 遍历找到的标签并提取memid和memcard属性\n", " for tag in input_tags:\n", " memid = tag.get('memid')\n", " memcard = tag.get('memcard')\n", " # print(f\"MemID: {memid}, MemCard: {memcard}\")\n", " new_data = {\n", " \"Method\": \"MemInfoCountExpenseGet\",\n", " \"memid\": memid\n", " }\n", " print(memid)\n", " new_url = 'http://yqhm.vip5968.com/AjaxService/Service.ashx?Method=MemInfoCountExpenseGet'\n", " res = requests.post(url=new_url, headers=headers, data=new_data)\n", " list = res.json().get('List')\n", " for data in list:\n", " data['memcard'] = memcard\n", " all_data_list.append(data)\n", "\n", "df = pd.DataFrame(all_data_list)\n", "\n", "df.to_excel(f'成浩美车会员管理系统导出.xlsx')\n", "\n" ], "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ " 0%| | 0/55 [00:00 31\u001B[0m viewstate \u001B[38;5;241m=\u001B[39m soup\u001B[38;5;241m.\u001B[39mfind(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124minput\u001B[39m\u001B[38;5;124m'\u001B[39m, {\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mid\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;124m'\u001B[39m\u001B[38;5;124m__VIEWSTATE\u001B[39m\u001B[38;5;124m'\u001B[39m})[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mvalue\u001B[39m\u001B[38;5;124m'\u001B[39m]\n\u001B[0;32m 32\u001B[0m eventvalidation \u001B[38;5;241m=\u001B[39m soup\u001B[38;5;241m.\u001B[39mfind(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124minput\u001B[39m\u001B[38;5;124m'\u001B[39m, {\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mid\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;124m'\u001B[39m\u001B[38;5;124m__EVENTVALIDATION\u001B[39m\u001B[38;5;124m'\u001B[39m})[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mvalue\u001B[39m\u001B[38;5;124m'\u001B[39m]\n\u001B[0;32m 34\u001B[0m input_tags \u001B[38;5;241m=\u001B[39m soup\u001B[38;5;241m.\u001B[39mfind_all(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124minput\u001B[39m\u001B[38;5;124m'\u001B[39m, {\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mid\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;28;01mlambda\u001B[39;00m x: x \u001B[38;5;129;01mand\u001B[39;00m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mrptDataList_chkItem\u001B[39m\u001B[38;5;124m'\u001B[39m \u001B[38;5;129;01min\u001B[39;00m x})\n", "\u001B[1;31mTypeError\u001B[0m: 'NoneType' object is not subscriptable" ] } ], "execution_count": 32 }, { "metadata": { "ExecuteTime": { "end_time": "2025-01-18T02:35:24.666100Z", "start_time": "2025-01-18T02:35:24.666100Z" } }, "cell_type": "code", "source": [ "import requests\n", "import pandas as pd\n", "from bs4 import BeautifulSoup\n", "from tqdm import tqdm\n", "\n", "headers = {\n", " \"cookie\": \"td_cookie=2698739984; ASP.NET_SessionId=lzkml2bs2crzysshj2nutb5v; TestCookie=; td_cookie=2764366113; LoginState=68AD1028E54520B1EDDB8584F2768630F73F7846610C020FCDEE011B12E86E6E806A72CE142D4339\",\n", " \"host\": \"yqhm.vip5968.com\",\n", " \"upgrade-insecure-requests\": \"1\",\n", " \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0\"\n", "}\n", "\n", "all_data_list = []\n", "# for page in tqdm(range(1, 56)): # 总页数注意+1\n", "url = 'http://yqhm.vip5968.com/Module/Member/MemList.aspx?PID=3'\n", "\n", "data = {\n", " \"PID\": \"3\",\n", " # \"__EVENTTARGET\": \"NetPager\",\n", " # \"__EVENTARGUMENT\": page,\n", " # \"__VIEWSTATE\": viewstate,\n", " # \"__EVENTVALIDATION\": eventvalidation\n", "\n", "}\n", "res = requests.post(url=url, headers=headers, data=data)\n", "print(res.text)\n", "soup = BeautifulSoup(res.text, 'html.parser')\n", "\n", "viewstate = soup.find('input', {'id': '__VIEWSTATE'})['value']\n", "eventvalidation = soup.find('input', {'id': '__EVENTVALIDATION'})['value']\n", "\n", "input_tags = soup.find_all('input', {'id': lambda x: x and 'rptDataList_chkItem' in x})\n", "\n", "# 遍历找到的标签并提取memid和memcard属性\n", "for tag in input_tags:\n", " memid = tag.get('memid')\n", " memcard = tag.get('memcard')\n", " # print(f\"MemID: {memid}, MemCard: {memcard}\")\n", " new_data = {\n", " \"Method\": \"MemInfoCountExpenseGet\",\n", " \"memid\": memid\n", " }\n", " print(memid)\n", " new_url = 'http://yqhm.vip5968.com/AjaxService/Service.ashx?Method=MemInfoCountExpenseGet'\n", " res = requests.post(url=new_url, headers=headers, data=new_data)\n", " list = res.json().get('List')\n", " for data in list:\n", " data['memcard'] = memcard\n", " all_data_list.append(data)\n", "\n", "for page in tqdm(range(2, 56)): # 总页数注意+1\n", " url = 'http://yqhm.vip5968.com/Module/Member/MemList.aspx?PID=3'\n", "\n", " data = {\n", " \"PID\": \"3\",\n", " \"__EVENTTARGET\": \"NetPager\",\n", " \"__EVENTARGUMENT\": page,\n", " \"__VIEWSTATE\": viewstate,\n", " \"__EVENTVALIDATION\": eventvalidation\n", "\n", " }\n", "\n", " res = requests.post(url=url, headers=headers, data=data)\n", " # print(res.text)\n", " soup = BeautifulSoup(res.text, 'html.parser')\n", "\n", " viewstate = soup.find('input', {'id': '__VIEWSTATE'})['value']\n", " eventvalidation = soup.find('input', {'id': '__EVENTVALIDATION'})['value']\n", "\n", " input_tags = soup.find_all('input', {'id': lambda x: x and 'rptDataList_chkItem' in x})\n", "\n", " # 遍历找到的标签并提取memid和memcard属性\n", " for tag in input_tags:\n", " memid = tag.get('memid')\n", " memcard = tag.get('memcard')\n", " # print(f\"MemID: {memid}, MemCard: {memcard}\")\n", " new_data = {\n", " \"Method\": \"MemInfoCountExpenseGet\",\n", " \"memid\": memid\n", " }\n", " print(memid)\n", " new_url = 'http://yqhm.vip5968.com/AjaxService/Service.ashx?Method=MemInfoCountExpenseGet'\n", " res = requests.post(url=new_url, headers=headers, data=new_data)\n", " list = res.json().get('List')\n", " for data in list:\n", " data['memcard'] = memcard\n", " all_data_list.append(data)\n", "\n", "df = pd.DataFrame(all_data_list)\n", "\n", "df.to_excel(f'成浩美车会员管理系统导出.xlsx')\n", "\n" ], "id": "4743835b87d92aa8", "outputs": [], "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 }