Python是一种高级的编程语言,广泛应用于Web开发、数据科学、人工智能等领域。在知乎上,许多用户在分享这方面的知识和经验,因此采集知乎数据成为了一个非常有意义的项目。下面将介绍如何使用Python采集知乎数据。
import requests import json url = 'https://www.zhihu.com/api/v3/feed/topstory/hot-list-web?limit=50' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.3'} resp = requests.get(url, headers=headers) if resp.status_code == 200: data = json.loads(resp.text) for item in data['data']: print(item['target']['question']['title']) else: print('Network error')
以上代码使用requests库发送请求,获取知乎热门问题列表的JSON数据。数据通过json库解析后,遍历并打印出每个问题的标题。
除了获取问题列表,我们还可以采集问题的详细内容。具体的步骤是:先获取问题的question_id,再通过API获取该问题的详细信息。
import requests import json url = 'https://www.zhihu.com/api/v4/questions/372904204' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.3'} resp = requests.get(url, headers=headers) if resp.status_code == 200: data = json.loads(resp.text) print(data['title']) print(data['detail']) else: print('Network error')
以上代码通过API获取问题id为372904204的问题信息,包括标题和详细内容。
值得注意的是,访问知乎时需要加上headers,否则会被知乎认为是不正常的访问行为而被屏蔽。
本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。
0