天天看點

微信小程式,小遊戲資料助手資料爬取!還敢随便授權小遊戲嗎?一、背景介紹二、環境準備三、代碼實作 

一、背景介紹

近期産生需求,需要批量重複擷取微信小程式資料助手的部分資料,減少重複工作,提高效率。

二、環境準備

主要邏輯:charles抓包,分析,爬取,資料存儲

環境配置:pc-win10/移動-iphone/軟體-charles

* Charles配置與使用,參考的此條連結:https://blog.csdn.net/HeyShHeyou/article/details/90045204

*charles注意事項:

  1. 官網安裝包下載下傳可能會很慢,可以去找找其他下載下傳資源
  2. 軟體每半小時會斷開連結,需要重新啟動
  3. 重新開機後,最好将proxy----windows proxy 去掉勾選(否則會産生過多資訊,不容易找到目标連結)
  4. 善于利用清除功能幫助篩選

三、代碼實作

  1. 抓包:通過charles抓包,找到所需内容的url
  2. 分析:分析url的content為json格式,根據需求,提取相關資料
  3. 存儲:将資料儲存到表格中
  4. 查找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