Python番外篇:爬取CSDN作者排行榜数据
今天,又双叒叕是番外篇,我们来爬取CSDN作者排行榜上的数据。
1. 确定数据源
首先,排行榜的网页链接是https://blog.csdn.net/rank/list/total:
打开“查看网页源代码”,会看到:
里面根本没有排行榜数据,我认为,这是因为CSDN网站使用了AJAX技术,这种技术通过后台与服务器进行少量的数据交换就可以使网站实现异步更新,减少了网站重复内容的下载,也节省了网站的流量。简单来说,AJAX技术就可以直接运用Javascript代码加载或更新网页的一部分,而不是为了更新某个动态数据重新加载整个页面。
那爬虫面对它,有什么办法呢?
既然要实现实时更新,肯定要请求一个数据接口,这个接口提供实时的排行数据。
这个接口经过我的查找后,网址为:
https://blog.csdn.net/phoenix/web/blog/allRank/
也得加上两个参数:
page=0
pageSize=20
pageSize指定了获取网站排行榜前n名作者的数据(这里n=20),我们只需在请求时加上参数即可。
2. 分析数据
浏览器访问这个网址,会返回json格式的数据,如下图:
可以看到,数据存储在data中的allRankListItem中:
我们来分析第一名的数据:
3.编写代码
我们使用json的loads函数,加载数据。
这里我们只打印前10的排行数据:
import requests
from json import loadsheaders = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","Host": "blog.csdn.net"}
params = {"page": "0",# 可以修改pageSize的值"pageSize": "10"
}
url = "https://blog.csdn.net/phoenix/web/blog/allRank/"
r = requests.get(url, headers=headers, params=params)data = loads(r.text)["data"]["allRankListItem"]for i in data:user_url = "https://blog.csdn.net/" + i["userName"]print(i["currentRank"],i["nickName"],",粉丝数:"+str(i["fansCount"]),",等级:"+str(i["level"]),",个人主页:"+user_url)
user_url是用户主页链接,CSDN的主页链接格式是:https://blog.csdn.net/ + 用户名。
4.运行代码
运行以上代码,格式应该如下:
1 涛歌依旧 ,粉丝数:96704 ,等级:11 ,个人主页:https://blog.csdn.net/stpeace
2 一个处女座的程序猿 ,粉丝数:468522 ,等级:10 ,个人主页:https://blog.csdn.net/qq_41185868
3 yuanmeng001 ,粉丝数:14092 ,等级:11 ,个人主页:https://blog.csdn.net/yuanmeng001
4 yjclsx ,粉丝数:6701 ,等级:10 ,个人主页:https://blog.csdn.net/yjclsx
5 SAP剑客 ,粉丝数:9330 ,等级:10 ,个人主页:https://blog.csdn.net/zhongguomao
6 Augusdi ,粉丝数:10076 ,等级:10 ,个人主页:https://blog.csdn.net/augusdi
7 dog250 ,粉丝数:18534 ,等级:10 ,个人主页:https://blog.csdn.net/dog250
8 Inside_Zhang ,粉丝数:5976 ,等级:10 ,个人主页:https://blog.csdn.net/lanchunhui
9 OkidoGreen ,粉丝数:5442 ,等级:10 ,个人主页:https://blog.csdn.net/z69183787
10 DrogoZhang ,粉丝数:21420 ,等级:10 ,个人主页:https://blog.csdn.net/weixin_40400177
今天的番外篇就到这儿了,感兴趣记得收藏点赞哦~~
Python番外篇:爬取CSDN作者排行榜数据相关推荐
- Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中
hello,大家好,我是wangzirui32,今天我们来学习如何爬取CSDN热搜数据,并保存到Excel表格中. 开始学习吧! 学习目录 1. 数据包抓取 2. 编写代码 1. 数据包抓取 打开CS ...
- 【Python爬虫】用Python爬取娱乐圈排行榜数据
想关注你的爱豆最近在娱乐圈发展的怎么样吗?本文和你一起爬取娱乐圈的排行榜数据,来看看你的爱豆现在排名变化情况,有几次登顶,几次进了前十名呀. PS:在下一篇文章中分析排行榜的动态变化趋势,并绘制成 ...
- Python番外篇:网络爬虫组词程序
今天,双是番外篇,这次番外篇主要教大家如何用网络爬虫查询词语. 1.确定数据源 首先,我们得找一个查询的数据源,我找到了360国学网站,选择"词语大全",它的查询词语网址为: ht ...
- Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法
目录 lxml库 lxml基本用法 解析XML文件 解析HTML文件 XPath 什么是XPath XPath语法 XPath实战 选取某节点的所有子孙节点 选取某节点的所有子节点 通过属性选取某节点 ...
- python爬虫实例之爬取智联招聘数据
这是作者的处女作,轻点喷.... 实习在公司时领导要求学习python,python的爬虫作为入门来说是十分友好的,话不多说,开始进入正题. 主要是爬去智联的岗位信息进行对比分析出java和pytho ...
- Python番外篇:爬取腾讯新闻热点内容 并发送新闻提示电子邮件
hello,大家好,我是wangzirui32,今天来教大家如何爬取爬取腾讯新闻热点内容,并发送新闻提示电子邮件,开始学习吧! 1. HTML解析 腾讯网的首页为https://www.qq.com, ...
- 落枕学python—番外篇(1)
前言 上次写过了两篇啊,那么这次我先缓一缓,先写一个番外,但这不等于些废话,我还是要说一点实质性内容的,废话不多说,咱们先开始哈. 一.Python有什么好? 咱们既然学,就要知道我们为什么要学. 第 ...
- python实战系列之爬取CSDN博客之星2020年度排名情况(附源码)
前言 CSDN2020年度博客之星马上就要收尾了,你知道自己关注的博主排名实时变化吗?谁是你心目中的博客之星,让我们爬取各位博主的排名及各位博主的一些个人信息. 代码 直接上代码 # -*- codi ...
- Python番外篇:Python代码生成春联 三种版本
Hello,大家好,我是wangzirui32,今天就是虎年春节了,先祝大家虎虎生威,虎年大吉!愿大家在新的一年里万事如意,心想事成! 文章目录 1. 普通版本 1.1 引入所需模块 1.2 生成春联 ...
最新文章
- python8_python8
- 中国工程院谭建荣:人工智能应用得再好,最核心的算法不行,创新能力就不行丨MEET2021...
- python文件引用其他文件中的变量
- Java实现线程同步的方式
- VTK:几何对象之ColoredLines
- wifi名称可以有空格吗_收购公司后可以变更公司名称吗,变更公司名称和股权如何处理?...
- sqlserver分区表索引
- 安卓java摄像机的_在Android系统中调用系统前置摄像头
- 装x玩法:插上你的专有U盘才能开机
- 解码器常见故障及解决方法
- 集成运放的电压跟随器有什么作用?
- java mysql 流水号_java实现数据库序号(流水号)
- flutter入门之理解Isolate及compute
- 用Python分析《阿凡达·水之道》的豆瓣短评
- 与构架有关的几个基本概念
- 君正X1830芯片性能和处理器介绍
- Matlab将图片背景修改为深色
- 老照片修复项目:MyHeritage软件 破姐版分享
- 处理/root/jdk8/jdk1.8.0_241/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or di错误
- 十年踪迹:巧用 currentColor 属性来实现自定义 checkbox 样式
热门文章
- 四位直读表PCB设计
- XSS跨站脚本攻击原理与常见的脚本及《XSS跨站脚本攻击剖析与防御》摘录总结
- HCIP-H12-223多选题库
- 计算机专业热门求职岗位排行榜
- mts格式转换成mp4怎么转?
- ORACLE分区表、分区索引详解
- 计算机系统结构自考大纲,2013自考《计算机系统结构》课程大纲说明
- [译]What is the Web's Model of Computation?
- virustotal 出现PUP.HighConfidence
- ReactNative_Simulator com+r不能刷新模拟器