[ Python 原理分析 ]如何实现用户实现博客文章点赞-物联网Python

目录

一、前言

二、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, headers=headers, data=data)
        解析...
    except requests.exceptions.HTTPError as e:
        print(f"ERROR={response.json()}")

        值得注意的是,我们的点赞是有上线的,那么我们就可以先判断是否达到上线,再去解析Json内容,当然,此处的写法并不官方,仅作测试即可。

3.4 实现批量点赞

        至此,我们将获取点赞状态的函数和实现点赞的函数组合起来,在程序遍历文章时,让程序对每个文章都进行点赞状态的判断。

四、效果展示

五、声明

        根据CSDN社区管理规定,因此本文并不提供源代码和相关任何可以使用的程序,本文仅涉及原理,供学习交流。

  • 31
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西西菜鸟

打赏支持获得问题解答机会

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值