欢迎光临散文网 会员登陆 & 注册

【2023知乎爬虫】知友怎么看待《罗刹海市》?爬了上千条知乎回答!

2023-08-04 07:03 作者:马哥python说  | 我要投稿

您好,我是@马哥python说,一枚10年程序猿。

一、爬取目标

之前我分享过一篇知乎评论的爬虫教程:

但是学习群中的小伙伴强烈要求爬取知乎回答,所以本次分享知乎回答的爬虫。

二、展示爬取结果

老规矩,先展示结果。

最近《罗刹海市》这首歌比较火,就爬这个问题下的回答吧:如何评价刀郎的新歌《罗刹海市》?

部分爬取结果

爬取了前200多页,每页5条数据,共1000多条回答。(程序设置的自动判断结束页,我是手动break的) 共爬到13个字段,包含:问题id,页码,答主昵称,答主性别,答主粉丝数,答主主页,答主签名,回答id,回答时间,评论数,点赞数,喜欢数,回答内容。

三、讲解代码

3.1 分析页面

我是通过知乎的ajax接口爬的。打开一个知乎问题,Chrome浏览器按F12进入开发者模式之后,多往下翻几页回答,就会找到目标请求地址,如下:

开发者模式

每翻一次页,就会出现一个请求,请求中含5条回答数据。

3.2 开发爬虫

首先,导入需要用到的库:

定义一个请求头:

这里,我仅设置了user-agent足矣。(如果数据量仍未满足且遇到反爬,请尝试增加cookie等其他请求头解决)

定义请求地址(含指定问题id):

发送请求,并接收数据:

定义一些空列表用于存放解析后数据:

以"回答内容"字段为例:

其他字段同理,不再赘述。

把数据保存为Dataframe并进一步保存到csv文件:

保存到csv时加上encoding='utf_8_sig'参数,防止产生乱码问题。

至此,核心代码逻辑讲解完毕。完整代码还包括:转换时间格式、转换性别、正则表达式清洗回答内容、循环内判断结束页等功能,详见文末获取。

代码中,question_id换成任意知乎问题id,即可爬取该问题的对应回答。

四、同步视频

代码演示视频:

五、获取完整源码

爱学习的小伙伴,本次分析过程的完整python源码及结果数据,我已打包好,并上传至我的微信公众号"老男孩的平凡之路",后台回复"爬知乎回答"即可获取!



我是@马哥python说 ,持续分享python源码干货中!

【2023知乎爬虫】知友怎么看待《罗刹海市》?爬了上千条知乎回答!的评论 (共 条)

分享到微博请遵守国家法律