当前位置: 首页 > news >正文

[ 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社区管理规定,因此本文并不提供源代码和相关任何可以使用的程序,本文仅涉及原理,供学习交流。

相关文章:

[ 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 构建点赞请…...

【47 Pandas+Pyecharts | 杭州二手房数据分析可视化】

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 过滤数据2.3 行政区处理2.4 地址处理2.5 房屋信息处理2.6 面积处理2.7 楼层处理2.8 年份处理2.9 房价处理2.10 删除不用的列2.11 数据类型转换2.12 查看…...

C++入门基础知识13

C 的关键字(接上一篇博文)!! 10. const_cast用法: 该运算符用来修改类型的 const 或 volatile 属性。除了 const 或 volatile 修饰之外, type_id 和 expression 的类型是一样的。常量指针被转化成非常量指针…...

IP地址证如何实现HTTPS访问?(内网IP、公网IP)

IP地址证书(全称为IP地址的SSL/TLS证书)是实现通过IP地址进行HTTPS访问的关键。以下是实现这一目标的详细步骤: 一、选择证书颁发机构(CA) 1.选择支持IP证书的CA:并非所有证书颁发机构都提供为IP地址颁…...

东土科技车规级网络芯片获批量应用

东土科技孵化的我国第一颗国产汽车芯片名录的车规级TSN交换网络芯片,于近期获得国家新能源汽车技术创新中心10万片芯片订单,将规模化应用于车载网关,赋能新一代自主可控汽车网络通信架构。 车规级TSN交换网络芯片于2021年流片成功&#xff0…...

nvidia系列教程-AGX-Orin pcie扩展M.2磁盘调试笔记

目录 前言 一、AGX-Orin pcie接口介绍 二、原理图连接 三、SDK配置 四、M.2磁盘调试 总结 前言 NVIDIA Jetson AGX Orin 是一款强大的嵌入式平台,广泛应用于 AI 推理、机器人和自动驾驶等领域。在扩展存储方面,PCIe 接口的 M.2 SSD 是一个常见的选择。本篇博客将记录如何…...

haproxy七层代理知识点以及各种配置

1.为什么用haproxy 当后端主机有一个出现问题了的时候,我们需要访问的流量全部打到正常工作的后端主机,所以我们需要后端检测,lvs没有后端检测,所以就需要用到haproxy 2.负载均衡 2.1 什么是负载均衡 负载均衡,Loa…...

uniapp自定义浮动图标、列表布局

uniapp自定义浮动图标 <button class="fab" @click="goPage"><image src="../../../static/yiyuan.png" mode="" style="width: 60rpx;height:60rpx;"></image></button>.fab {z-index: 100;positi…...

学习嵌入式入门(十)高级定时器简介及实验(下)

一、高级定时器互补输出带死区控制实验 上图中&#xff0c;CH1 输出黄色的 PWM&#xff0c;它的互补通道 CH1N 输出绿色的 PWM。通过对比&#xff0c;可以 知道这两个 PWM 刚好是反过来的&#xff0c;CH1 的 PWM 为高电平期间&#xff0c;CH1N 的 PWM 则是低电平&#xff0c; 反…...

使用python在不改变原有excel的格式下,修改指定单元格格式

需求 有一个账单&#xff0c;需要生成一个副本&#xff0c;但是需要将交易员列隐藏&#xff0c;不能改变原有的格式 xlsx的文件容易实现&#xff0c;使用openpyxl实现 xls的文件使用xlrdxlutil实现 参考了https://segmentfault.com/q/1010000008270267 class GenCopyReport(o…...

MySQL数据库:详细安装与配置指南

目录 背景: 一.下载过程(MySQL数据库): 二.安装过程(MySQL数据库)&#xff1a; 三.验证MySQL是否安装成功 背景: MySQL 是一个流行的开源关系数据库管理(RDBMS)&#xff0c;由瑞典MySQL AB公司开发&#xff0c;后俩该公司被Sun Microsystems收购&#xff0c;Sun Microsyste…...

python爬虫代理IP实战

Python爬虫代理IP实战指南 在进行网络爬虫时&#xff0c;使用代理IP可以有效隐藏真实IP地址&#xff0c;避免被目标网站封禁。本文将通过实际示例&#xff0c;展示如何在Python中使用代理IP进行网络爬虫。 1. 环境准备 首先&#xff0c;确保您已安装Python和所需的库。在本示…...

样式,常用组件

3、代码实现登录的思路 设置属性的成员方法都有统一的命名规范&#xff1a; set&#xff08;&#xff09;//就是某种属性的名字 父窗口&#xff1a;组件嵌套到那个主窗口中&#xff0c;这个主窗口就是父窗口 第一步&#xff1a;创建一个标签对象用来显示登录界面的标题 QLabe…...

Django Project | 云笔记练习项目

文章目录 功能整体架构流程搭建平台环境子功能先创建用户表 并同步到数据库1.用户注册密码存储 -- 哈希算法唯一索引引发的重复问题 try登陆状态保持 -- 详细看用户登录状态 2. 用户登录会话状态时间 cookie用户登录状态校验 3. 网站首页4.退出登录5.笔记模块 列表页添加笔记 …...

Zookeeper的监听机制

Zookeeper的监听机制是Zookeeper框架中一个至关重要的功能&#xff0c;它实现了分布式系统中数据状态变化的实时通知&#xff0c;使得客户端能够及时响应并处理这些变化。下面将详细解析Zookeeper的监听机制及其原理&#xff0c;包括监听器的注册、事件通知的处理、监听器的特点…...

Swift withAnimation 动画完成监听

在ios17中withAnimation有completion方法可以监听动画完成&#xff0c;但是低于ios17没有&#xff0c;需要自定义一个监听器&#xff0c;原理就是通过AnimatableModifier可以监听到值的didSet修改&#xff0c;我们就可以调用回调函数。 代码 // 动画完成监听 struct Animatabl…...

场外期权交易:找到适合你的那一款

各位期权爱好者们&#xff01;今天咱们来聊聊在进行场外期权交易时&#xff0c;怎么去评估和选择适合自己风险承受能力的期权产品。 第一&#xff0c;你得对自己有个清楚的认识。想想看&#xff0c;你是那种激进型的冒险家&#xff0c;还是保守型的稳健派呢&#xff1f;了解自己…...

Elasticsearch-使用java 批量插入文档

首先创建两个实体类&#xff0c;用于存放所需值 开始编写接口&#xff0c;这里我使用的是RestController风格&#xff0c;然后使用PostMapping注解&#xff0c;入参根据自己的需求自定义&#xff0c;没有固定规范 这里实现接口的方法 然后重写接口中的方法&#xff08;编写核心…...

【区块链+食品安全】农业产业全过程溯源云平台 | FISCO BCOS应用案例

近年来&#xff0c;食品安全问题频发&#xff0c;尤其疫情期间&#xff0c;海鲜、冷冻畜牧产品的入口安全成为大众关注焦点&#xff0c;追溯、确保相关产品生产、运输、售卖等环节的信息真实、有效&#xff0c;成为保证食品安全的核心环节。浙江天演维真网络科技股份有限公司基…...

每日面试题Day2

C语言中 # 和 ## 的用法 # 是 字符串化操作符,定义时用括号代表参数传递, 可以把传入的参数名替换成带双引号的字符串 定义: #define a(b) #a 使用:a(123) 编译时会展开成 "123" ## 是字符串连接符,定义时用括号代表参数传递, 可以把参数在宏定义的字符…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...