python爬取商城数据_Python爬取新版CRMEB小程序商城后台订单数据,保存为excel
安裝依賴庫(kù)
pip3 install requests, openpyxl
爬取思路
后臺(tái)ingdan的接口地址是:/admin/order.StoreOrder/order_list.html
登陸之后我們可以獲取到header信息,利用requests.get方式獲取接口數(shù)據(jù),并將爬取的response數(shù)據(jù)返回為json數(shù)據(jù),利用字典的get方式獲取我們需要的信息。
將我們需要的訂單、支付時(shí)間等信息逐項(xiàng)讀取并返回為一個(gè)列表格式
創(chuàng)建一個(gè)空白的excel文檔
excel第一行設(shè)置為每一列的標(biāo)題
每個(gè)標(biāo)題對(duì)應(yīng)的列存入對(duì)應(yīng)的數(shù)據(jù)
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對(duì)應(yīng)的每個(gè)值,讀取訂單信息
order_id - 訂單ID | pay_price - 實(shí)際支付 | pay_type_name - 支付類型 | pink_name - 訂單類型
mark - 用戶備注(郵箱)| total_num - 訂單數(shù)量 | add_time - 支付時(shí)間 | _info - 商品名稱(返回一個(gè)列表)
"""
datas = load_json()
return [data[dict_name] for data in datas]
def cell_range(wb):
""" 創(chuàng)建一個(gè)空白表格 """
ws = wb.active
return ws
def save_xlsx(ws, title, sheets, column, start=2):
""" 設(shè)置首行標(biāo)題及標(biāo)題對(duì)應(yīng)的值 """
ws[column+str(start-1)] = title
for i in list(range(start, len(sheets)+start)):
ws[column+str(i)].value = sheets[i-start]
函數(shù)使用文檔
load_json()爬取接口數(shù)據(jù)并返回data的json格式數(shù)據(jù)
read_data()獲取每個(gè)數(shù)據(jù)的列表
cell_range()獲取excel的默認(rèn)表格,并返回
save_xlsx(ws, title, sheets, column, start=2)
ws: 空白的表格
title: 設(shè)置第一行對(duì)應(yīng)數(shù)據(jù)的標(biāo)題
sheets: 每個(gè)數(shù)據(jù)的列表
column: 每一列對(duì)應(yīng)的大寫字母如(A,B,C,D,E)
開始爬取并保存,需要獲取更多數(shù)據(jù),請(qǐng)參考CRMEB的接口文檔
if __name__ == "__main__":
from openpyxl import Workbook
# headers信息請(qǐng)?jiān)陬^部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為分頁(yè)頁(yè)碼 limit為每一頁(yè)的訂單數(shù)量,其他篩選條件在這里添加,具體參考crmeb接口文檔
params = {'page': 1, 'limit': 20}
wb = Workbook()
ws = cell_range(wb)
# 設(shè)置訂單號(hào)
order_id = read_data('order_id')
save_xlsx(ws, title='訂單號(hào)', sheets=order_id, column='A')
# 設(shè)置訂單數(shù)量
total_num = read_data('total_num')
save_xlsx(ws, title='訂單數(shù)量', sheets=total_num, column='B')
# 設(shè)置支付時(shí)間
add_time = read_data('add_time')
save_xlsx(ws, title='支付時(shí)間', sheets=add_time, column='C')
# 設(shè)置實(shí)際支付
pay_price = read_data('pay_price')
save_xlsx(ws, title='實(shí)際支付', sheets=pay_price, column='D')
# 設(shè)置支付類型
pay_type_name = read_data('pay_type_name')
save_xlsx(ws, title='支付類型', sheets=pay_type_name, column='E')
# 設(shè)置推廣人
spread_nickname = read_data('spread_nickname')
save_xlsx(ws, title='推廣人', sheets=spread_nickname, column='F')
# 設(shè)置產(chǎn)品名稱
names = [name[0]['cart_info']['productInfo']['store_name'] for name in read_data('_info')]
save_xlsx(ws, title='產(chǎn)品名稱', sheets=names, column='G')
wb.save('data_crmeb.xlsx')
本條爬蟲比較簡(jiǎn)陋,但對(duì)于我們自己的后臺(tái)足夠用了,只為方便大家獲取訂單數(shù)據(jù),方便分析,請(qǐng)勿用于其他用途喲。
總結(jié)
以上是生活随笔為你收集整理的python爬取商城数据_Python爬取新版CRMEB小程序商城后台订单数据,保存为excel的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 社区计生民生工程知识竞赛小结_幸福之基
- 下一篇: P5709 【深基2.习6】Apples