一个大胆的想法,爬取简书所有的文章信息

在上一篇我们写了一个爬虫脚本,这个脚本可以通过用户的 uid爬取对应用户的所有文章的信息并保存到本地。

既然我们已经可以爬取单个用户的所有文章了,那我们就想,是否能够爬取更多用户的文章信息?

比如说我们定个小目标:爬取所有简书用户的文章信息。

这个小目标好像有点难度,那我们再定一个小小目标,先爬他个一万篇文章的信息。

这样看起来就简单多了,等我们爬到了一万篇文章信息,再爬十万、一百万、一 … ..、最后就是简书所有的文章了,嘿嘿嘿( •̀ ω •́ )y。

既然已经确定了目标,那么就让我们行动起来。

项目文章,想看结果的可以点下面链接:
一:实战:爬取简书之搭建程序框架

一、爬取思路

磨刀不误砍柴工,在敲代码之前让我们先来讨论一下应该怎么爬取。

清晰的思路往往可以使我们的劳动达到事半功倍的效果。

第一个问题:如何获取用户 uid

我们知道,每个用户都会关注一些其他的用户,而这些被关注的用户也有自己关注的用户,这样一直循环。

所以我们的爬虫思路就是,先找一批关注数量较多的用户,以这些用户为起点,爬取他们所关注的用户。

这样我们就获得了第一批的用户 uid,然后在第一批用户的基础上再爬取第一批用户的关注,这样我们就获得了第二批用户,如此往复,只要时间够长,我们就能够获取简书绝大部分的用户 uid。

第二个问题:如何获取用户文章信息

这个问题我们已经在上一篇讲过了,不知道的可以取看看

python爬虫系列之数据存储实战:爬取简书用户文章列表并保存

第三个问题:如何保存数据

对于较大的数据量,数据库肯定是第一选择。但是我们还没讲过如何使用数据库,所以只好用 csv了。

那为什么不用 json呢?原因我们在上一篇讲过,json不能逐条保存数据,而我们要爬取的数据量又比较大,不能全保存在缓存里等到最后再写入,所以就只能用 csv了。

二、程序结构

  1. 请求模块

    接受一个 url,返回 url对应网页的 xpath对象

    需求:

    • 能随机切换 user-agent
    • 可以设置代理
    • 能对返回结果进行一定的预处理
  2. uid 解析模块

    解析用户 uid

    需求:

    • 能够自动去除已爬取过的 uid
    • 可以不断返回 uid–>生成器
  3. 数据爬取模块

    接受一个 uid作为参数,返回 uid对应用户的所有文章信息

    需求:

    • 返回信息为字典格式
    • 自动判断是否爬取结束
  4. 数据保存模块

    接受一个字典的列表,将数据保存到对应的文件中

    需求:

    • 将字典格式的数据保存到文件中
  5. 断点续爬

    在出现意外情况后能够从上次中断的地方继续爬取

    需求:

    • 断点续爬

以上就是程序的大体框架和功能,细节部分后面我们慢慢完善。

如果你有什么想法,欢迎评论留言一起参与这个项目。

项目的源代码会发布在 GitHub上,下一篇我们先把程序的框架完成。

觉得写的不错?点赞、评论、关注三连来一套(。^^)

上一篇:python爬虫系列之数据存储实战:爬取简书用户文章列表并保存
下一篇:实战:爬取简书之搭建程序框架

    原文作者:渔父歌
    原文地址: https://www.jianshu.com/p/7a8c30fbd684
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞