Python爬取新版CRMEB小程序商城後臺訂單數據,保存爲excel

安裝依賴庫

pip3 install requests, openpyxl

  

爬取思路

  1. 後臺ingdan的接口地址是:/admin/order.StoreOrder/order_list.html
  2. 登陸之後我們可以獲取到header信息,利用requests.get方式獲取接口數據,並將爬取的response數據返回爲json數據,利用字典的get方式獲取我們需要的信息。
  3. 將我們需要的訂單、支付時間等信息逐項讀取並返回爲一個列表格式
  4. 創建一個空白的excel文檔
  5. excel第一行設置爲每一列的標題
  6. 每個標題對應的列存入對應的數據
 
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')

  

本條爬蟲比較簡陋,但對於我們自己的後臺足夠用了,只爲方便大家獲取訂單數據,方便分析,請勿用於其他用途喲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章