网站代更新,贵州省城乡和住房建设厅官方网站,沈阳凯鸿科技有限公司,企业邮箱账号是什么目录
一、前言
二、Python爬虫
三、详细操作
3.1 建立基本工程
3.2 获取文章列表
3.2.1 找到获取文章请求
3.2.2 分析获取请求
3.2.3 构建获取请求
3.2.4 调试打印
3.3 实现点赞操作
3.3.1 判断点赞状态
3.3.2 找到点赞请求
3.2.3 分析点赞请求
3.2.4 构建点赞请…目录
一、前言
二、Python爬虫
三、详细操作
3.1 建立基本工程
3.2 获取文章列表
3.2.1 找到获取文章请求
3.2.2 分析获取请求
3.2.3 构建获取请求
3.2.4 调试打印
3.3 实现点赞操作
3.3.1 判断点赞状态
3.3.2 找到点赞请求
3.2.3 分析点赞请求
3.2.4 构建点赞请求
3.4 实现批量点赞
四、效果展示
五、声明 一、前言 声明本文仅对原理进行分析本文中不涉及真实可以使用的代码。 当然本文主要介绍爬虫技术为主作为一个物联网领域博主Python技术必不可少爬虫本质上无非是模拟用户向服务器发出各类请求最终获取到想要的数据而已。那么这种技术在物联网领域中也十分常见。 在日常学习中看到某些博主的文章写的真是出类拔萃、下笔成章、信手拈来、酣畅淋漓相比博主本人也是才高八斗、学富五车没错是我恨不得马上将其所有文章全部读之并全部一键三连。 进入主页才发现好家伙文章一百有余如此岂不累煞我也没想到该博主留下一本武林秘籍名曰[ Python ]使用cookies模拟用户实现博客文章批量点赞-物联网Python-爬虫实战正合我意随废寝忘食努力学习终于养成爬虫一条对该博主的所有文章全部投去了赞许的目光。
二、Python爬虫 Python爬虫又称为网络爬虫或网页蜘蛛是一种使用Python编程语言编写的自动化脚本或程序用于浏览并抓取网页上的信息。这些爬虫程序能够模拟人类用户在浏览器中的行为如发送HTTP请求、接收响应、解析HTML或JSON等格式的网页内容并提取出所需的数据。 那么爬虫常见的步骤是 确定目标 - 发起请求 - 获取响应 - 解析内容 - 存储数据
三、详细操作 那么本文将以CSDN为例实现对CSDN博客文章点赞的操作。 环境使用PyCharm 类库使用requests、time
3.1 建立基本工程 使用PyCharm建立工程随后导入库文件。
import time
import requests 3.2 获取文章列表 那么我们如果要实现点赞功能我们需要什么当然是先要知道这个博主有多少文章分别是什么所以第一步我们需要获取文章列表。
3.2.1 找到获取文章请求 那么我们使用浏览器进入我的博客主页。西西菜鸟的家~ 随后我们按下F12选择网络或者NetWork然后点击图片中第三步清空随后将左侧页面的选中的“最近”切换为“文章”看到右侧有数据出现即可。 3.2.2 分析获取请求 经过我们对数据包的分析我们可以发现有一条Get请求中返回了文章列表。 看一下他的标头和负载 负载中的size字段代表获取的文章数量我在后面的构造中将此参数改为了200。 那么通过上述信息我们可以直接封装相关参数了。
3.2.3 构建获取请求 那么首先我们先定义这些参数便于后续使用。下列参数的获取在下个标题 随后我们自定义一个函数用来获取文章列表并在主函数中调用它 3.2.4 调试打印 运行一下看看能否获取到文章和articleID这是点赞需要用的。 可以看到获取到了所有文章。
3.3 实现点赞操作
3.3.1 判断点赞状态 常规来说如果我们需要点赞那么一定是先判断点赞状态的。 根据上图我们对具体json响应的分析其携带了每篇文章的URL我们知道我们进入博客会显示我们是否点过赞因此实际上是我们是和服务器交互过点赞的数据的。 那么我们访问该博客使用F12进行抓包搜索like关键字。 经过试验我们发现某个响应中的isLikeStatus变量与点赞状态有关于是我们分析该请求的相关内容并使用Python仿写发送该请求。 并且由于该响应返回的不少json文本而是网页于是我们将其变为字符串转换思路去查找该字符串存在与否。 3.3.2 找到点赞请求 依旧是原来的步骤我们清空F12内的数据后手动点击点赞按钮。 不难看出点赞功能是向服务器发出了一个like请求返回的值中包含总点赞数量点赞状态。
3.2.3 分析点赞请求 查看标头和负载我们分析并找出需要的信息。 3.2.4 构建点赞请求 有了上述信息我们构建点赞请求即可。
def like_article(articleId):url https://blog.csdn.net/...... # 点赞链接headers {User-Agent: ...,Cookie: ...}data {articleId: articleId}try:response requests.post(url, headersheaders, datadata)解析...except requests.exceptions.HTTPError as e:print(fERROR{response.json()}) 值得注意的是我们的点赞是有上线的那么我们就可以先判断是否达到上线再去解析Json内容当然此处的写法并不官方仅作测试即可。
3.4 实现批量点赞 至此我们将获取点赞状态的函数和实现点赞的函数组合起来在程序遍历文章时让程序对每个文章都进行点赞状态的判断。
四、效果展示 五、声明 根据CSDN社区管理规定因此本文并不提供源代码和相关任何可以使用的程序本文仅涉及原理供学习交流。