一、背景介紹
近期産生需求,需要批量重複擷取微信小程式資料助手的部分資料,減少重複工作,提高效率。
二、環境準備
主要邏輯:charles抓包,分析,爬取,資料存儲
環境配置:pc-win10/移動-iphone/軟體-charles
* Charles配置與使用,參考的此條連結:https://blog.csdn.net/HeyShHeyou/article/details/90045204
*charles注意事項:
- 官網安裝包下載下傳可能會很慢,可以去找找其他下載下傳資源
- 軟體每半小時會斷開連結,需要重新啟動
- 重新開機後,最好将proxy----windows proxy 去掉勾選(否則會産生過多資訊,不容易找到目标連結)
- 善于利用清除功能幫助篩選
三、代碼實作
- 抓包:通過charles抓包,找到所需内容的url
- 分析:分析url的content為json格式,根據需求,提取相關資料
- 存儲:将資料儲存到表格中
- 查找url規律:分析url規律,進行項目批量循環處理
import requestsimport pandas as pdimport pandas as pdimport urllib3 def ltv(url,canshu,content): res = requests.get(url, verify=False) res = res.json()['data']['sequence_data_list'] df_LTV = pd.DataFrame(res[canshu]['point_list']) df_LTV = df_LTV[['value', 'label']] df_LTV.rename(columns={'value': content}, inplace=True) return df_LTV urllib3.disable_warnings()df = pd.read_csv('WX_account2.csv', sep=',')df_url = pd.read_csv('url2.csv', sep=',')df_all2 = pd.DataFrame(columns=['game', 'label'])for j in range(len(df_url['url'])): url = df_url['url'].loc[j] content = df_url['content'].loc[j] canshu = int(df_url['canshu'].loc[j]) df_right = pd.DataFrame(columns=[]) df_all = pd.DataFrame() for i in range(len(df['appid'])): try: game = df['game'].loc[i] appid = df['appid'].loc[i].strip() url_new = url.format(appid) print(i, game) df_right = ltv(url_new, canshu, content) df_right['game'] = game df_all = pd.concat([df_all, df_right], join='outer') except: continue df_all2 = pd.merge(df_all2, df_all, how='right', on=['game', 'label']) df_all2.to_csv('data.csv', sep=',', index=False, encoding='utf_8_sig')
效果就不展示了,需要代碼的直接加群:1136192749