安裝依賴庫
pip3 install requests, openpyxl
爬取思路
- 後臺ingdan的接口地址是:/admin/order.StoreOrder/order_list.html
- 登陸之後我們可以獲取到header信息,利用requests.get方式獲取接口數據,並將爬取的response數據返回爲json數據,利用字典的get方式獲取我們需要的信息。
- 將我們需要的訂單、支付時間等信息逐項讀取並返回爲一個列表格式
- 創建一個空白的excel文檔
- excel第一行設置爲每一列的標題
- 每個標題對應的列存入對應的數據
import json import re import requests from openpyxl import Workbook def load_json(): """ 讀取json中的data信息 """ resp = requests.get( 'http://xxx.com/admin/order.StoreOrder/order_list.html?', params=params, headers=headers ).content.decode('utf-8') datas = json.loads(resp).get('data', '不存在') return datas def read_data(dict_name): """ dict_name對應的每個值,讀取訂單信息 order_id - 訂單ID | pay_price - 實際支付 | pay_type_name - 支付類型 | pink_name - 訂單類型 mark - 用戶備註(郵箱)| total_num - 訂單數量 | add_time - 支付時間 | _info - 商品名稱(返回一個列表) """ datas = load_json() return [data[dict_name] for data in datas] def cell_range(wb): """ 創建一個空白表格 """ ws = wb.active return ws def save_xlsx(ws, title, sheets, column, start=2): """ 設置首行標題及標題對應的值 """ ws[column+str(start-1)] = title for i in list(range(start, len(sheets)+start)): ws[column+str(i)].value = sheets[i-start]
函數使用文檔
- load_json()爬取接口數據並返回data的json格式數據
- read_data()獲取每個數據的列表
- cell_range()獲取excel的默認表格,並返回
- save_xlsx(ws, title, sheets, column, start=2)
- ws: 空白的表格
- title: 設置第一行對應數據的標題
- sheets: 每個數據的列表
- column: 每一列對應的大寫字母如(A,B,C,D,E)
開始爬取並保存,需要獲取更多數據,請參考CRMEB的接口文檔
if __name__ == "__main__": from openpyxl import Workbook # headers信息請在頭部header中獲取 headers = { 'Cookie': '替換爲你的Cookie信息', 'Host': '替換爲你的host', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4128.3 Safari/537.36' } # page爲分頁頁碼 limit爲每一頁的訂單數量,其他篩選條件在這裏添加,具體參考crmeb接口文檔 params = {'page': 1, 'limit': 20} wb = Workbook() ws = cell_range(wb) # 設置訂單號 order_id = read_data('order_id') save_xlsx(ws, title='訂單號', sheets=order_id, column='A') # 設置訂單數量 total_num = read_data('total_num') save_xlsx(ws, title='訂單數量', sheets=total_num, column='B') # 設置支付時間 add_time = read_data('add_time') save_xlsx(ws, title='支付時間', sheets=add_time, column='C') # 設置實際支付 pay_price = read_data('pay_price') save_xlsx(ws, title='實際支付', sheets=pay_price, column='D') # 設置支付類型 pay_type_name = read_data('pay_type_name') save_xlsx(ws, title='支付類型', sheets=pay_type_name, column='E') # 設置推廣人 spread_nickname = read_data('spread_nickname') save_xlsx(ws, title='推廣人', sheets=spread_nickname, column='F') # 設置產品名稱 names = [name[0]['cart_info']['productInfo']['store_name'] for name in read_data('_info')] save_xlsx(ws, title='產品名稱', sheets=names, column='G') wb.save('data_crmeb.xlsx')
本條爬蟲比較簡陋,但對於我們自己的後臺足夠用了,只爲方便大家獲取訂單數據,方便分析,請勿用於其他用途喲。