python爬取知乎话题(Python知乎采集)

1年前 (2023-09-16)阅读122回复0
优学习
优学习
  • 注册排名10009
  • 经验值0
  • 级别
  • 主题0
  • 回复0
楼主

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,否则会被知乎认为是不正常的访问行为而被屏蔽。

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/403.html

0
回帖

python爬取知乎话题(Python知乎采集) 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息