文章发出不到30分钟就被首页下架了,默哀……

起因

为了督促自己更加积极地写博客,我希望有一个排名系统能让我看到自己的进步。但是博客园对用户的排名体系相对是比较少的,主要是推荐博客排行和积分排行;但它们人数少难度大,短期内难以进入排名。因此我决定自力更生,爬取一份博客园粉丝数排行榜。

重要声明

为避免误(封)会(号),先做如下声明:

1、本排行榜非官方发布,是我通过爬虫得到的。

2、爬虫过程一直坚持网站友好原则:

(1)只查询网站公开内容(当然,非公开的我也不会)

(2)为避免对服务器造成压力,一直使用单线程发送请求,且每两个请求之间都设置了一定时间间隔

爬虫思路

首先介绍一下爬虫的思路,不感兴趣的朋友可以直接拉到文章最后看结果,或者点击这里查看:博客园粉丝数排行榜(粉丝数不少于100)

思路基本分两步:1、初始化种子用户;2、迭代。

1、初始化种子用户

这一步的目标,是找到尽可能多的种子用户,种子用户最好发过文章,尤其是高质量文章,这样他们有较大概率有较多的粉丝。

下面是我选取的种子用户来源,在博客园的对应位置在下图标出:

  • 1、首页文章作者(200页):
  • 2、精华文章作者(80+页)
  • 3、编辑推荐文章作者(160+页)
  • 4、推荐博客排行(100+人)
  • 5、积分排行榜(3000人)

得到种子用户的用户名后,便可以在其个人页面获取昵称、粉丝数、园龄、文章首页等基本信息。例如,榜首(昵称:孤傲苍狼)的用户名是xdp-gacl,则他的个人页面是:https://home.cnblogs.com/u/xdp-gacl/

2、迭代

迭代的目的是从种子用户出发,找到其他粉丝数较多的用户;方法是获取种子用户关注的人”——因为被关注的人有较大概率有更多的粉丝。用户关注的人在这里(还是以榜首孤傲苍狼为例):https://home.cnblogs.com/u/xdp-gacl/followees/

因此一轮迭代的步骤是这样的:

(1)遍历当前用户列表,得到他们关注的用户;

(2)将这些关注的用户加入到当前用户列表。

如此循环往复,进行多轮迭代;直到不再有新的用户为止。

3、不足

有义务说明一下本排行榜的不足之处:

(1)爬取时间主要在5.10-5.19,排行榜不会反映在此期间及之后发生的变化(如用户粉丝数上涨)。

(2)通过这种方式,肯定无法爬取所有用户信息,但是粉丝数较多的用户被爬到的概率要大得多;因此为了尽可能保证准确性,排行榜只列出了粉丝数不少于100的用户。

(3)排行究竟漏掉了多少用户,仍是一个未知数,如果你认为有什么方法上的漏洞,或者有漏掉的用户,欢迎讨论。

技术

本次爬虫使用的技术比较常规:语言使用Python3,发送请求使用requests库,HTML解析使用BeautifulSoup,数据存储使用Redis;此外,爬虫过程中还会遇到动态加载页面、使用cookie进行身份校验等,都比较常见,不再赘述。

数据存储之所以选择Redis,主要是考虑到数据在内存中,访问快,且Redis提供了丰富的数据类型(如有序集合),使用起来比较方便;为了保证数据不丢失,一定要保证Redis开启了持久化,最好开启AOF持久化。

结果

排行榜(粉丝数不小于100)可以点击链接查看:博客园粉丝数排行榜

前25名截图如下:

其中:

1、榜首是孤傲苍狼,有1.8w+粉丝,遥遥领先;在我爬虫这几天,涨了几十名粉丝,实在厉害。

2、粉丝数10000以上的,共有5位;粉丝数1000以上的,有286位;粉丝数100以上的,有3068位。

3、官方账号博客园团队有4644位粉丝,排第26位。

4、如果你的目标是进入前100名,至少需要2200+位粉丝;如果你的目标是进入前1000名,至少需要300+位粉丝。

转载于:https://www.cnblogs.com/kismetv/p/10891510.html

【Python爬虫】爬了七天七夜,终于爬出了博客园粉丝数排行榜!相关推荐

  1. python爬虫抢演唱会_Python爬虫爬了七天七夜终于爬出了博客园粉丝数排行榜

    Python爬虫爬了七天七夜终于爬出了博客园粉丝数排行榜 [Python爬虫]爬了七天七夜,终于爬出了博客园粉丝数排行榜! 爬虫数据采集接单,大小不限,欢迎各位科研教师,学生,企业相关人员咨询,QQ: ...

  2. python爬虫难度排行_【Python爬虫】爬了七天七夜,终于爬出了博客园粉丝数排行榜!...

    [Python爬虫]爬了七天七夜,终于爬出了博客园粉丝数排行榜! 文章发出不到30分钟就被首页下架了,默哀-- 起因 为了督促自己更加积极地写博客,我希望有一个排名系统能让我看到自己的进步.但是博客园 ...

  3. Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!

    Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...

  4. python博客项目评论_Python 爬虫入门——小项目实战(自动私信博客园某篇博客下的评论人,随机发送一条笑话,完整代码在博文最后)...

    之前写的都是针对爬虫过程中遇到问题的解决方案,没怎么涉及到实际案例.这次,就以博客园为主题,写一个自动私信博客下的评论人员(在本篇留下的评论的同学也会被自动私信,如果不想被私信,同时又有问题,请私信我 ...

  5. Selenium3+python3自动化(四十三)--爬取我的博客园粉丝的名称,并写入.text文件...

    爬取目标 1.爬取目标网站:我的博客:https://home.cnblogs.com/u/canglongdao/followers/ 爬取内容:爬取我的博客的所有粉丝的名称,并保存到txt 3.由 ...

  6. python贴吧发帖脚本-一个发布文章到博客园的 Python 脚本

    我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到 为了解决这个问题,希望把文章也顺便发布到博客平台博客园上.但不想每次手动复制粘贴,打算利用脚本实现, ...

  7. python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现

    一个最简单的博客园文章密码暴力破解器-python3实现 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手. 博客园的博客有个功 ...

  8. Python爬虫入门实战2:获取CSDN个人博客文章基础信息

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036 ░ 一.引言 当爬取博文内容时,有时需要进行 ...

  9. Python爬虫入门实战1:获取CSDN个人博客文章目录及阅读量数据

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036 ░ 一.引言 有阵子博客的访问量出现了比较大 ...

最新文章

  1. c linux new使内存耗尽_C/C++的内存泄漏检测工具Valgrind memcheck的使用经历
  2. (以pytorch为例)路径(深度)的正则化方法的简单理解-drop path
  3. android应用程序的混淆打包
  4. Docker下redis的主从配置
  5. html5语音读取文字_文字识别神器最新版-文字识别神器安卓版下载
  6. python3函数重载_9.20 利用函数注解实现方法重载
  7. 5怎么用修改器_经常用电脑辐射大怎么办?这5个习惯防辐射,很多人都知道
  8. ATMEGA128定时器1的使用
  9. Shottr 免费好用的Mac 截屏软件
  10. LVDS信号与TTL信号
  11. emlog海报生成插件
  12. 【BZOJ1503】郁闷的出纳员
  13. 25岁同济硕士生斩获CVPR 2022 最佳学生论文奖
  14. python3.7安装完成pip无法使用
  15. Thinkphp+layui数据表格实现表格分页
  16. Fail Fast与Fail Safe的区别
  17. 应聘时如何回答quot;你的期望薪资…
  18. 基于Java毕业设计药房药品采购集中管理系统源码+系统+mysql+lw文档+部署软件
  19. Win10笔记本电脑无法连接Wifi或连接上Wifi无网络访问
  20. java爬虫实时采集小说+springboot推荐算法+实现在线小说免费阅读推荐系统

热门文章

  1. PCB技术五大发展趋势
  2. QT笔记——QLabel设置自动换行
  3. 【001】-智能管控页面改造,使其能被外系统正常展示,代码调整说明
  4. UVa 441 - Lotto
  5. 如何导出或删除3CX通话记录
  6. 前淘宝工程师对12306的解读: 曾嗤之以鼻 现在认为几乎是奇迹
  7. VS2017 .NET C# MDI窗体菜单,隐藏子窗体ICON图标
  8. workshop 会议_HTTP Workshop和Python
  9. 微信小程序服务器存储数据,突破微信小程序存储限制的技巧与方法详解
  10. matlab处理物理数据,MATLAB在处理大学物理实验数据的应用