返回顶部
首页 > 资讯 > 后端开发 > Python >【Python爬虫】爬了七天七夜,终于爬
  • 748
分享到

【Python爬虫】爬了七天七夜,终于爬

爬虫爬了七夜 2023-01-31 00:01:11 748人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

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

起因

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

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

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+位粉丝。

--结束END--

本文标题: 【Python爬虫】爬了七天七夜,终于爬

本文链接: https://lsjlt.com/news/182362.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【Python爬虫】爬了七天七夜,终于爬
    起因 为了督促自己更加积极地写博客,我希望有一个排名系统能让我看到自己的进步。但是博客园对用户的排名体系相对是比较少的,主要是推荐博客排行和积分排行;但它们人数少难度大,短期内难以进入排名。因此我决定自力更生,爬取一份博客园粉丝数排行榜。...
    99+
    2023-01-31
    爬虫 爬了 七夜
  • 运维学python之爬虫中级篇(七)Sq
    前文已经讲过无数据库版本操作(csv,json),今天我们要开始讲有数据库版本的操作,首先就是sqlite3。 SQLite是一个C库,它提供了一个轻量级的基于磁盘的数据库,它不需要单独的服务器进程,并且允许使用SQL查询语言的非标准格式...
    99+
    2023-01-31
    爬虫 运维学 python
  • Python爬虫入门教程第七讲: 蜂鸟网
    蜂鸟网图片--简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度。 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文档必备 :https://aioht...
    99+
    2023-01-31
    爬虫 入门教程 第七讲
  • Python爬虫入门:爬虫基础了解
    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫入门(5):URLError异常...
    99+
    2023-01-30
    爬虫 入门 基础
  • python爬虫第六天
        今天继续学习一些实战爬虫   链接爬虫实战       要求:把一个网页里所有的链接地址提取出来     思路:(1)确定爬取的入口链接               (2)构建提取链接的正则表达式            ...
    99+
    2023-01-30
    爬虫 第六天 python
  • python爬虫第一天
    简介          1:组成:爬虫节点,控制节点和资源库。        控制节点,也叫中央控制器,主要负责根据url地址分配线程,并调用爬虫节点进行具体的爬行。        爬虫节点会按照具体的算法,对网页进行具体的爬行,主要...
    99+
    2023-01-30
    爬虫 python
  • Python爬虫第二天
    Python爬虫第二天   超时设置         有时候访问网页时长时间未响应,系统就会判断网页超时,无法打开网页。如果需要自己设置超时时间则:             通过urlopen()打开网页时使用timeout字段设置 i...
    99+
    2023-01-30
    爬虫 第二天 Python
  • python爬虫第四天
        昨天学到了正则表达式基础知识 :原子 今天开始学习第二个基础知识:元字符 元字符     就是正则表达式中含有特殊含义的一些字符 常见的元字符及含义   符号 含义 . 匹配除换行符以外 的任意字...
    99+
    2023-01-30
    爬虫 第四天 python
  • python爬虫第五天
            cookie           我们访问网页是通过http协议进行的,而http协议是一个无状态协议(无法维持会话之间的状态),比如我们登录一个网站成功后访问另一个网页,那么登录状态就会消失,十分不方便。而我们可以通过C...
    99+
    2023-01-30
    爬虫 第五天 python
  • Python爬虫学习教程:天猫商品数据爬虫
    天猫商品数据爬虫使用教程下载chrome浏览器查看chrome浏览器的版本号,下载对应版本号的chromedriver驱动pip安装下列包pip install seleniumpip install pyquery登录微博,并通过微博绑定...
    99+
    2023-06-02
  • 【100天精通python】Day45:python网络爬虫开发_ Scrapy 爬虫框架
    目录 1 Scrapy 的简介 2 Scrapy选择器 3 快速创建Scrapy 爬虫 4 下载器与爬虫中间件 5 使用管道Pielines...
    99+
    2023-08-31
    python 爬虫 数据库
  • 【100天精通python】Day41:python网络爬虫开发_爬虫基础入门
    目录  专栏导读  1网络爬虫概述 1.1 工作原理 1.2 应用场景 1.3 爬虫策略 1.4 爬虫的挑战来源地址:https://blog.csdn.net/qq_35831906/article/details/132377113...
    99+
    2023-09-01
    python 爬虫 开发语言
  • python分布式爬虫--房天下
    第一步安装redis redis在windows系统中的安装与启动: 下载:redis官方是不支持windows操作系统的。但是微软的开源部门将redis移植到了windows上。因此下载地址不是在redis官网上。而是在github上...
    99+
    2023-01-30
    爬虫 分布式 天下
  • python爬虫了解第一篇
    爬虫的实际例子 搜索引擎:关键字匹配提取,前提是要将所有的页面爬一遍,然后存到自己的服务器,当用户惊醒搜索的时候,根据自己的搜索内容,搜索引擎将用户搜索信息返回给用户。 伯乐在线: 文章的搬运工(http://www.jobbole....
    99+
    2023-01-31
    爬虫 第一篇 python
  • 使用Python多线程爬虫爬取电影天堂资源
    最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载。刚开始学习python希望可以获得宝贵的意见。  ...
    99+
    2022-06-04
    爬虫 多线程 天堂
  • Python爬虫爬取属于自己的地铁线路图
    目录一.高德地图数据爬取1.爬取思路2.python核心代码二.生成shp文件并导出图片1.文本点生成shp代码2.Arcmap设置样式前言: 网上找的地铁线路图大多数都不太清晰,而...
    99+
    2024-04-02
  • 『赠书活动 | 第十七期』《Python网络爬虫:从入门到实战》
    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 『赠书活动 | 第十七期』 本...
    99+
    2023-09-02
    python 爬虫 开发语言
  • python网络爬虫基于selenium爬取斗鱼直播信息
    目录一、本文使用的第三方包和工具二、selenium的介绍和浏览器驱动的安装1.selenium的介绍2.浏览器驱动的安装三、代码思路分析1.解析数据的函数2.保存数据的函数3.主函...
    99+
    2024-04-02
  • 怎么创建基于Python的爬虫
    这篇文章主要介绍“怎么创建基于Python的爬虫”,在日常操作中,相信很多人在怎么创建基于Python的爬虫问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么创建基于Python的爬虫”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • 关于Python网络爬虫框架scrapy
    目录scrapy爬虫框架介绍scrapy爬虫框架结构“5+2”结构:requests库和scrapy库比较scrapy的常用命令scrapy爬虫框架介绍 sc...
    99+
    2023-05-17
    Python 爬虫 Python 爬虫框架 scrapy框架
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作