当前位置: 首页 > 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" ## 是字符串连接符,定义时用括号代表参数传递, 可以把参数在宏定义的字符…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...