最近接了老客户的一个单子,需求是采集一个app中的板块的数据,如图所示
话不多说,直接下载客户发的app,立马对其进行抓包话不多说,如图所示
查看该该数据对应的数据包,如下所示
因此我们用代码模拟请求下数据,结果如下所示
数据请求成功,整个过程没有任何加密,代码如下
import requests
import pandas as pd
time_lis,read_num_lis,tag_lis,reply_num_lis,zan_lis,content_lis,askTag_lis,ip_lis = [],[],[],[],[],[],[],[]
#最多采集45300页数
for pg in range(1,1000):
url = 'https://api/xxxx.com/api/list-old?uid=xxxxxx&page={}'.format(pg)
headers ={
'user-agent': 'Mozilla/5.0 (Linux; Android 9; MI 6X Build/PKQ1.180904.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3235 MMWEBSDK/20220505 Mobile Safari/537.36 MMWEBID/2123 MicroMessenger/8.0.23.2160(0x28001757) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android',
}
r = requests.get(url,headers=headers)
data = r.json()['data']['list']
for i in data:
time_lis.append(i['createTime'])
read_num_lis.append(i['hits'])
tag_lis.append(i['topicTitle'])
reply_num_lis.append(i['replyCounter'])
zan_lis.append(i['zanCounter'])
content_lis.append(i['content'].replace('\n',''))
askTag_lis.append(i['askTag'])
ip_lis.append(i['ip'])
print(i['createTime'],i['hits'],i['topicTitle'],i['replyCounter'],i['zanCounter'],i['content'].replace('\n',''),i['askTag'],i['ip'])
print('*'*100)
df = pd.DataFrame({
'时间':time_lis,
'阅读量':read_num_lis,
'标签':tag_lis,
'评论量':reply_num_lis,
'点赞量':zan_lis,
'内容':content_lis,
'来自':askTag_lis,
'ip':ip_lis,
})
df.to_csv('C:/users/14499/desktop/200.csv',index=False,encoding='utf_8_sig')
我们可以看下url的结构,为了防止api外露,这里的url重要部分我已去除了,采集成功!
点击此处登录后即可评论