自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 Edge开发者工具:保留日志与禁用缓存详解

在(或基于 Chromium 的浏览器,如 Chrome)中,和是开发者工具(DevTools)中的两个非常实用的功能,主要用于调试网页加载、网络请求和性能问题。下面详细介绍这两个功能的用途与用法。

2026-01-02 17:21:13 236

原创 JS逆向:DOM交互与window.onload详解

是浏览器(Window 对象)提供的一个页面加载事件处理属性,它用于指定一个回调函数,这个回调函数会在整个页面完全加载完成后才自动执行。HTML 文档解析生成的 DOM 树(所有标签、元素)外部引入的资源:CSS 样式表、JavaScript 文件、图片(<img>)、音频 / 视频、字体文件等框架页面(<iframe>)中的内容。

2026-01-01 21:51:06 209

原创 python:使用sorted()对列表中的字典进行排序

如果不需要保留原始列表,想要直接修改原列表,可以使用列表的。以上结果默认是按照升序进行排列的。如果列表中可能存在缺少。

2025-12-29 15:10:56 142

原创 python:selenium,CSS位置偏移反爬案例

names数据类型names是一个 PyQuery集合对象(可以理解为「多个单个节点的容器」),它不是单个节点,而是包含了页面中所有匹配选择器的节点的集合。来源:从整个页面源码解析后的doc(根PyQuery对象)中,筛选出所有满足「.item节点下的.name节点」条件的元素,全部存入names中。names是一个「名称节点列表」,里面装着页面上所有要提取的名称对应的节点(比如页面上有 10 个商品名称,names就包含 10 个.name节点)。数据类型name_html是一个单个的。

2025-12-29 13:56:40 1099

原创 python:playwright事件监听、获取节点属性

定义一个名为的函数,它将在每次页面发起网络请求并收到响应时被调用。response是一个Response对象,包含:.status:HTTP 状态码(如 200、404).url:该响应对应的完整 URL⚠️ 注意:这里拼写错误 ——"Statue"应为"Status"(不影响运行,但属于笔误)。✅ 功能:打印出所有加载资源(HTML、JS、CSS、XHR、图片等)的响应状态和 URL。

2025-12-29 11:18:51 592

原创 python:playwright的基本使用

使用 Playwright 自动化测试框架,在 Chromium、Firefox 和 WebKit 三种浏览器中分别打开百度首页,截图保存,并打印页面标题。

2025-12-29 08:59:46 888

原创 使用 webdriver-manager配置geckodriver

使用来自动管理(无需手动下载、配置环境变量),这是 Selenium 自动化中更高效、更省心的方案,我会为你提供完整的配置步骤、代码示例和核心注意事项。

2025-12-28 17:16:48 338

原创 python:global用法体会

这是因为先测试无global函数时,无global的函数中没有global,没有改变session变量的值,session依然等于None,没有改变,所以输出的时候是None。所以说,先后执行有与无global变量的函数时,输出的结果就会不一样,这样更利于理解global变量在函数作用域中所起到的作用。而后者的代码,是先测试的有global变量的函数,因为函数中有global变量,global变量就会告诉python解释器。def no_global_demo(),再执行有global函数。

2025-12-28 15:25:30 415

原创 python3网络爬虫开发实战 第2版:并发限制

用于创建一个异步信号量对象,其中是传入的最大许可数(即允许同时执行的协程最大数量),它是asyncio内置的同步原语,仅适用于异步协程环境。创建异步信号量对象,核心作用是限制异步协程的最大并发数,实现限流;底层基于 “许可数” 工作,通过 “获取 - 挂起 - 释放 - 唤醒” 的循环,保证并发数不超过;推荐使用async with异步上下文管理器,自动管理许可的获取与释放,安全简洁;仅适用于异步协程环境,不会阻塞事件循环,是异步编程中控制并发的核心工具。

2025-12-28 11:52:57 782

原创 python,如果定义了await funa()函数,哪几种情况下可以启动函数?

在 Python 中,如果你定义了一个 协程函数(coroutine function),例如:那么 本身并不会立即执行,而是返回一个 协程对象(coroutine object)。要真正“启动”或“运行”这个协程函数,有以下几种常见方式:这是最常见的方式。你只能在 定义的函数内部使用 :✅ 2. 使用事件循环(Event Loop)直接运行协程(适用于顶层代码)在 Python 3.7+ 中,可以使用 来运行协程(推荐方式):✅ 3. 使用 或 (调度为后台任务)

2025-12-28 10:51:07 281

原创 python3网络爬虫开发实战 第2版:使用aiohttp

Python 3.7+ 优先使用,代码更简洁、更安全自动管理事件循环,避免手动操作的遗漏低版本兼容可保留原写法,补充完善资源回收优化后的异步任务执行代码,功能与原代码一致,但可读性和健壮性更强。

2025-12-28 09:59:11 841

原创 python3网络爬虫开发实战 第二版:绑定回调

HTTP GET 请求方法,作用是向指定的 URL 发送 HTTP GET 请求,等待服务器响应并返回一个。requests.get(url)返回值的内容。

2025-12-26 17:24:08 167

原创 python:Ajax爬取电影详情实战

的核心是安全地从接口返回的字典中获取电影列表数据,避免因字段缺失导致程序崩溃;get方法是爬虫开发中处理接口数据的常用技巧(接口返回格式可能异常),比直接取值更健壮;遍历results列表的目的是获取每部电影的id,为爬取详情页提供必要的参数。

2025-12-26 15:09:21 323

原创 python:mysql数据库

是使用pymysql连接 MySQL 数据库后创建一个**游标对象(cursor)**的关键步骤。

2025-12-25 22:18:49 877

原创 python:输出JSON

这个过程也叫“编码”(encoding)。、自定义类等,会报错,需通过。是 Python 标准库。模块中的一个函数,用于将。

2025-12-25 14:52:06 329

原创 python3网络爬虫开发实战 第2版 4.1TEXT文本文件存储的代码错误

会被 Python 解释为“无效转义序列”,虽然。上下文管理器自动处理文件的打开和关闭。在正则中是合法的),但会发出。后续再尝试写入就会抛出错误(模块仍能正确识别(因为。

2025-12-25 12:52:26 259

原创 CSS 选择器(CSS Selectors) 的完整规则汇总

以下是的完整规则汇总,适用于网页开发、爬虫(如 PyQuery、BeautifulSoup、Scrapy、Selenium 等)以及前端样式编写。

2025-12-25 12:00:07 621

原创 python:协程及任务创建

运行结果如下:说明你调用了,但没有用await或来真正执行它。Python 只是创建了一个协程对象,然后就结束了程序,导致协程“被遗忘”,于是发出警告。

2025-12-25 11:34:10 804

原创 python :__call__方法

_call__让类的实例可以像函数一样被调用,执行__call__中的逻辑。支持传入参数,参数规则与普通函数一致。常用于实现带状态的装饰器工厂模式函数式对象等场景。可通过callable()检查对象是否可调用。

2025-12-24 17:46:56 251

原创 python:pyquery的初步使用

虽然同目录下面有这个ceshi.html文件,但是按照书中的代码写是会报错的。

2025-12-24 17:41:36 489

原创 python:线程池创建与使用

在 Python 中,可以使用创建进程池,并调用其map()方法来并行处理任务。虽然推荐使用with语句(上下文管理器)来自动管理资源(如关闭和 join 进程池),with,则需要close()join()来确保资源被正确释放。下面是一个不使用with。

2025-12-24 12:00:03 403

原创 python:单例模式

_new__首先说一下,查询了这么多单例模式的讲解,还是bilibili的这个视频讲解最清楚、简洁、实用且到位以上是单例模式的应用方法与思路以上Python 代码展示了中__new__方法的基础使用,__new__是 Python 中用于创建实例的静态方法(特殊方法),负责为对象分配内存空间,而__init__是实例初始化方法,负责对已创建的实例进行属性初始化。下面为你详细解析这段代码的执行逻辑、输出结果,以及进一步的扩展(比如实现单例模式)。

2025-12-23 22:57:46 616

原创 python:yield用法

yield是 Python 中用于定义**生成器(generator)**的关键字。与return不同,yield在函数中每次调用时会“产出”一个值,并暂停函数的执行状态;下次再调用时,从上次暂停的位置继续执行。

2025-12-23 12:04:51 167

原创 python:正则表达式

【代码】python:正则表达式。

2025-12-22 21:14:24 346

原创 python:if __name__ == ‘__main__‘用法

是 Python 中让一个文件既可作为模块导入,又可作为独立程序运行的关键机制。

2025-12-22 10:08:59 232

原创 计算机系统要素:测试文件解读

在 Hack 硬件测试脚本(.tst)的。

2025-12-18 17:51:34 221

原创 IA-32:过程调用

TYPE的计算规则:返回指定标识符(数据类型 / 变量 / 数组元素)的基本存储单元字节数,本质是汇编器在编译阶段计算的常量值(非运行时计算)。USES是专有的伪指令(非 x86 硬件指令),用于简化 IA-32 汇编过程中非易失性寄存器的保存与恢复,本质是编译器级别的语法糖,无需手动编写push/pop指令。仅支持 MASM/TASM,NASM/GAS 无此伪指令;仅能在PROC定义行使用(PROC与USES之间空格分隔);作用域仅限当前过程,过程结束时自动恢复寄存器。

2025-12-17 13:30:12 1002

原创 Visual Studio 2022 模板的使用方法

在前面的文章,我们已经配置好Irvine32的各种库,并在Visual Studio 2022中进行了调试和使用,均可以正常输出结果。那么 ,下一步,我们就以此为模板,创建可复用的带Irvine32配置的项目,这样就不用每次新建项目后,还要依照前述方法一步又一步地进行各个属性配置,太麻烦了,本次就使用模板,一次性创建好。

2025-12-16 14:21:58 475

原创 IA-32,堆栈操作及其代码解析

aName被分配为字符串的起始地址,假设是00404000h;字符串共 16个字节(15 个有效字符 + 1 个结束符 0),因此:第 1 个字符 'A' →00404000h第 2 个字符 'b' →00404001h...最后一个字符 0 →0040400Fh(15 个字节,地址从 00 到 0F);处理完行 1 后,汇编器的「下一个空闲地址」是00404010h—— 这就是行 2 中的值。.inc是汇编的「包含文件」,核心是「代码复用 + 统一声明」,你代码中引入后,才能直接调用。

2025-12-16 12:28:30 1089

原创 Intel汇编语言程序设计(第5版)中源代码在Visual Studio2022的汇编环境配置复现(VS2022 + Irvine32)

今天要学习的这本书的封面如下:目前这本书已经出版到第8版了,我学习使用的是第5版,翻译的作者中有一位是“罗云彬”,就是《Windows 环境下 32 位汇编语言程序设计》的作者,如下:因为相信作者的实力及翻译水平,就找来学习了。学习过程中,光看不练,相当于啥也没有学习到,同时,看到书中有作者提到他自己搭建的网站,网站上有视频,也有书籍的全套代码本书作者使用的是Visual sudio 2010版本,我目前正在使用的是Visual Studio 2022 版本,目前源代码已经在网站上下载下来了,目前就是在VI

2025-12-15 21:43:20 1324

原创 IA-32汇编:MOV r/m16,sreg指令、LAHF指令、ALIGN指令、LABEL 指令、TYPEDEF指令解析

asm.386;启用32位指令集平坦内存模型,C调用约定(可选)栈大小;========== 用TYPEDEF定义指针类型 ==========定义PBYTE为“BYTE类型的指针”别名定义PDWORD为“DWORD类型的指针”别名.DATA;========== 基于自定义指针类型创建变量 ==========字节型变量(目标数据)PBYTE类型指针,指向bVal(直接赋值地址);未初始化的PBYTE类型指针双字变量PDWORD类型指针,指向dVal.CODE。

2025-12-14 21:16:10 1008

原创 汇编:条件汇编、

批量生成 10 个字节的 0,替代手动写。

2025-12-13 17:20:57 735

原创 汇编:宏汇编、宏库

宏名 MACRO [参数1, 参数2,...];宏体(汇编指令)[EXITM];可选:提前退出宏ENDM在汇编语言中,宏是一种由程序员定义的“伪指令”,它不是一条 CPU 指令,而是在汇编阶段被展开为若干条真实指令的模板。;定义一个宏:显示字符INT 21HENDMINT 21H。

2025-12-13 16:47:15 406

原创 8086 CPU汇编伪操作汇总

伪操作功能.MODEL指定程序存储模式(TINY/SMALL/MEDIUM 等),简化段定义手动定义段的开始与结束(代码段、数据段、栈段).CODE简化定义代码段(配合.MODEL使用).DATA简化定义数据段(配合.MODEL使用).STACK定义栈段并指定大小(如ASSUME关联段寄存器与逻辑段(如ORG指定当前段的起始偏移地址(如ORG 100H用于 COM 程序)伪操作功能DB定义字节型数据(8 位,如DW定义字型数据(16 位,如DD定义双字型数据(32 位,如DQ定义四字型数据(64 位)

2025-12-12 22:22:21 398

原创 汇编:字符串的输入

关键知识点:程序的处理思路:1、调用int 16h读取键盘输入;2、如果不是字符:2.1 如果是退格键,从字符栈中弹出一个字符,显示字符栈中所有字符;继续执行“读取键盘输入”。2.2 如果是Enter键,向字符栈中压入0,返回。3、如果是字符键:字符入栈,显示字符栈中的所有字符,继续执行“读取键盘输入”。关键知识点:一、为什么是20H?在汇编代码中是判断输入字符是否为20H(十进制 32)是 ASCII 表中第一个 “可显示字符(空格)” 的编码,而小于20H的 ASCII 码均为。

2025-12-12 22:12:05 688

原创 汇编:改写中断例程-以int9为例、更改屏幕颜色

(Interrupt Return,中断返回)是一条用于从中断服务程序(ISR, Interrupt Service Routine)返回到被中断程序的指令。,否则无法恢复 FLAGS,可能导致中断系统异常(如 IF 标志未恢复,导致后续中断被屏蔽)。注意:在进入 ISR 时,CPU 自动将 FLAGS、CS、IP 压入堆栈;注意:8086 是实模式处理器,不支持保护模式下的特权级切换,因此。假设堆栈指针为 SP,堆栈向下增长(向低地址方向),执行。在 Intel 8086 CPU 中,

2025-12-11 21:31:53 503

原创 汇编:外设连接与中断

8086 在内存 00000H~003FFH(共 1KB)建立中断向量表,每个中断占 4 字节(2 字节偏移 + 2 字节段地址),对应中断号 0~255。中断是外设主动向 CPU 发起的 “请求”,让 CPU 暂停当前程序,优先处理外设任务(如键盘输入、串口数据接收)。8086CPU 对 PC 机键盘的处理是一个从硬件触发到软件解析的分层过程,核心依赖。四大环节,最终将键盘输入转化为程序可识别的 ASCII 码或控制信号。键盘内部的扫描芯片会实时检测按键的按下 / 松开状态,生成。IN AL, 端口号。

2025-12-10 23:12:23 1015

原创 汇编:int指令、BIOS与DOS中断、端口

中断 / 功能号功能寄存器参数要求设置光标位置bh = 显示页,dh = 行号,dl = 列号输出字符串ds:dx 指向字符串首地址,字符串以 '$' 结尾程序退出al = 返回码(通常为 0)

2025-12-10 22:36:10 879

原创 汇编:中断及处理

要让overflow(9 个字符)在 80 列的屏幕中水平居中屏幕总列数:80 列;字符串长度:9 个字符;居中列起始位置 = (80 - 9) ÷ 2 = 35.5 → 取整为 36 列(视觉上更居中)。第 36 列的偏移 = 36 列 × 2 字节 / 字符 =72(即36*2,十六进制为48H。

2025-12-09 22:08:06 931

原创 汇编:数据/代码查找表

汇编语言的是存储在内存中的连续数据集合,通过,实现 “查表取值”(无需计算,直接读取),核心优势是快速高效,尤其适合映射关系固定的场景(如 ASCII 码转换、数学函数值、状态映射等)。

2025-12-09 16:03:36 643

Intel汇编语言程序设计(第5版)中源代码在Visual Studio2022的汇编环境配置复现(VS2022 + Irvine32)

Intel汇编语言程序设计(第6版)中源代码及链接库

2025-12-15

WIN10 64位系统下用到的MASM 5.0

文件包含MASM5.0所需要的安装包 p4-1.asm汇编代码测试文件

2025-12-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除