一、背景介绍
近期产生需求,需要批量重复获取微信小程序数据助手的部分数据,减少重复工作,提高效率。
二、环境准备
主要逻辑: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 requests
import pandas as pd
import pandas as pd
import 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')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)