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

来源:2023-08-04 07:13:01    时间:哔哩哔哩

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

一、爬取目标

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


(相关资料图)

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

二、展示爬取结果

老规矩,先展示结果。

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

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

三、讲解代码

分析页面

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

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

开发爬虫

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

定义一个请求头:

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

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

发送请求,并接收数据:

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

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

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

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

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

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

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

四、同步视频

代码演示视频:

五、获取完整源码

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

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

关键词:

文章推荐

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

    您好,我是@马哥python说,一枚10年程序猿。一、爬取目标之前我分享过

    哔哩哔哩 2023-08-04
  • 相约大运 成就梦想丨钱天一/刘丁硕战胜队友赢得乒乓球混双冠军

    8月3日进行的成都大运会乒乓球项目混合双打决赛中,中国队选手钱天一

    川观新闻 2023-08-04
  • 北京卫视《不完美受害人》花絮-村里收集证据

    北京卫视不完美受害人 林阚@i周迅收集证据实属不易,村民以自身利益据

    北京时间 2023-08-04
  • 海南省中小企业发展服务中心揭牌 将整合资源为企业服务

    海南省中小企业发展服务中心。该单位是隶属于海南省工业和信息化厅的正

    南海网 2023-08-03
  • 深圳市政府和中国出口信用保险公司签署战略合作协议

    据深圳特区报,8月3日,深圳市政府与中国出口信用保险公司签署战略合作

    同花顺财经 2023-08-03
  • 广告

    X 关闭

    X 关闭

  • 众测
  • more+

    京张高铁每日开行17对冬奥列车

      京张高铁每日开行17对冬奥列车  预计冬奥服务保障期运送运动员、技术官员、持票观众等20万人次  2月6日,2022北京新闻中心举行“北

    北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》

      北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》  9岁小号手苦练悬臂吹响颂歌  2月4日晚,在北京冬奥会开幕式上,9岁的

    2022北京冬奥会开幕式这19首乐曲串烧不简单

      多名指挥家列曲目单 再由作曲家重新编曲 本报专访冬奥开幕式音乐总监赵麟  开幕式这19首乐曲串烧不简单  “二十四节气”倒计时、

    “一墩难求” 冰墩墩引爆购买潮

    设计师:没想到冰墩墩成爆款一墩难求冰墩墩引爆购买潮 北京冬奥组委:会源源不断供货北京冬奥会吉祥物冰墩墩近日引爆购买潮,导致一墩难求