计算机基础较弱,最近天天看app,眼睛疼,就顺便学了下抓些数据。
一,下载Fiddler,直接从官网上就可以下载,我当时下载的时候因网速不行下载了好多遍才下载好。
我用MAC,发现下载下来的是Fiddler Everywhere,没有细研究,但感觉差别不大,照
https://zhuanlan.zhihu.com/p/109313699 配置下即可。

在右上角的设置里面全能找到。
二,对手机进行设置,知乎的文档弄就可以都不难。
三,就是打开app来抓取数据。
打开app后找到那种前面带「JSON」标的然后右击再打开就可以。

以知乎上的那个为例,按上面的步骤打开如下:

再按照参考的例子爬取:
代码如下:
import requests
import json
def app_crawler(user_agent, url):
"""
@note : app爬虫
@parameter user_agent: headers 中的user_agent参数
@parameter url: 要爬取的网址
@return : 返回爬取的数据
"""
headers = {'User-Agent': user_agent}
res = requests.get(url=url, headers=headers, verify=False)
for i in range(0, 10):
print(res.json()['data'][i]['detail_text']+" "+ res.json()['data'][i]['target']['title']+" "+res.json()['data'][i]['target']['url'])
user_agent = "osee2unifiedRelease/3820 osee2unifiedReleaseVersion/7.3.0 Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
url = "https://api.zhihu.com/topstory/hot-list?limit=10&reverse_order=0"
# 主函数
if __name__== '__main__':
app_crawler(user_agent, url)
最后的结果:

有结果:
但里面要注意一个地方,就是
['data'][i]['target']['title'] 这个跟fiddler everywhere>Body>JSON里面显示的key有所不同,这个是看的网页版的里面的key,具体的爬虫的东西,没细学,只是会照猫画虎画出来了而已。

网友评论