千家信息网

python怎么爬取知乎5646个知乎回答

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍了python怎么爬取知乎5646个知乎回答,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。no bb show you
千家信息网最后更新 2024年11月11日python怎么爬取知乎5646个知乎回答

这篇文章主要介绍了python怎么爬取知乎5646个知乎回答,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

no bb show your code

这里是核心代码展示,主要就是将知乎的问题号作为参数传入函数,然后进行批量爬取回答,使用正则表达式将每个回答里包含书名号的书籍名或者电影名提取出来,最后在保存的csv即可。


def getAnswers(qid):
# 获取所有书籍和回答数据
offset = 0
book_data = {}
while True:
qid = qid
print('Offset =', offset)
# 知乎api请求
url = "https://www.zhihu.com/api/v4/questions/{}/answers?include=content&limit=20&offset={}&platform=desktop&sort_by=default".format(
qid, offset)
res = requests.get(url, headers=headers)
res.encoding = 'utf-8'
data = res.json()
if len(data['data']) == 0:
break
for line in data['data']:
# 保存回答数据
content = line['content']
result = re.findall(r'《(.*?)》', content)
for name in result:
book_data[name] = book_data.get(name, 0) + 1
offset += 20
# 保存爬取的内容
for i in book_data.keys():
new_data = {}
if i:
new_data['书籍名称'] = i
new_data['频率'] = book_data[i]
pandas_data.append(new_data)
df2 = pd.DataFrame(pandas_data, columns=['书籍名称', '频率'])
df2.to_csv("book.csv",encoding="utf_8_sig")

结果展示

5464个回答一共推荐了6434本书,其中《活着》共被推荐了286次。

行哥不禁感叹,这些年薪百万的大佬居然也要考虑跟行哥一样的问题-活着,看来离年薪百万更近一步了啦。不知道你距离年薪百万还差几本书如果前十的书都看过了,看看这前11-20的书单,这都看过的可以来文末直接查看领取6343本书的书单。这些书经过行哥确认,完全都可以在微信阅读上免费阅读,所以也不用担心找不到pdf版本。

感谢你能够认真阅读完这篇文章,希望小编分享的"python怎么爬取知乎5646个知乎回答"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0