自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 异步爬虫(协程、asyncio、aiohttp )

协程是异步爬虫的“基石”:通过轻量级调度,让单线程高效处理多任务,尤其适合 I/O 密集场景。aiohttp是异步网络请求的“利器”:替代同步requests,让 HTTP 请求“并行化”,大幅压缩总耗时。实战价值:批量爬取时,异步爬虫效率远超传统串行/多线程方案,且资源占用更低(适合大规模采集)。

2025-06-19 15:07:03 1493

原创 HTTP、UDP 和 TCP 协议详解

应用层协议,用于传输超文本数据(如网页、图片等)。

2025-06-19 14:54:12 609

原创 爬虫代理(socks、http)

选HTTP代理:仅需处理网页/API流量,追求简单配置与缓存优化。选SOCKS代理:需多协议支持、低延迟或高匿名性(如游戏、跨境访问)混合方案:使用支持HTTP+SOCKS的代理工具(如Clash),通过混合端口自动适配场景。通过权衡协议需求、性能要求及安全级别,可更高效地利用代理服务。

2025-06-19 14:51:09 897

原创 HTTP 1.0 和 2.0 、并发并行、 线程进程协程

【代码】HTTP 1.0 和 2.0 、并发并行、 线程进程协程。

2025-06-18 11:08:49 699

原创 GIL、多进程、多线程

I/O密集型(网络爬虫、Web请求、文件读写) 多线程 线程在等待I/O时会释放GIL,可以并发执行多个I/O任务CPU密集型(数学计算、图像处理、机器学习) 多进程 GIL限制多线程的并行性,多进程可绕过GIL,利用多核CPU。

2025-06-18 11:01:06 392

原创 同步异步爬虫

同步爬虫就像是一个人在一个时间点只能做一件事情。它按照顺序依次发送请求、获取数据、处理数据,每一步都必须等待前一步完成后才会进行下一步。在爬虫中,当使用同步方式发送一个HTTP请求获取网页内容时,程序会在这个请求完成并得到响应之前一直处于等待状态,不会去做其他事情。程序会依次访问 urls 列表中的每个网址。当访问第一个网址时,它会一直等待服务器返回响应,只有拿到响应后才会继续去访问第二个网址,以此类推。

2025-06-18 10:48:22 1324

原创 力扣——编程基础 860. 柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false。

2025-06-16 17:02:32 339

原创 力扣——编程基础 1491. 去掉最低工资和最高工资后的工资平均值

给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。

2025-06-16 16:56:56 150

原创 力扣——编程基础 1672. 最富有客户的资产总量

给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。

2025-06-16 16:53:41 163

原创 力扣——编程基础 1041. 困于环中的机器人

在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意:北方向 是y轴的正方向。南方向 是y轴的负方向。东方向 是x轴的正方向。西方向 是x轴的负方向。机器人可以接受下列三条指令之一:“G”:直走 1 个单位“L”:左转 90 度“R”:右转 90 度机器人按顺序执行指令 instructions,并一直重复它们。只有在平面中存在环使得机器人永远无法离开时,返回 true。否则,返回 false。

2025-06-16 16:47:34 254

原创 力扣——编程基础 1275. 找出井字棋的获胜者

井字棋 是由两个玩家 A 和 B 在 3 x 3 的棋盘上进行的游戏。井字棋游戏的规则如下:玩家轮流将棋子放在空方格 (’ ') 上。第一个玩家 A 总是用 ‘X’ 作为棋子,而第二个玩家 B 总是用 ‘O’ 作为棋子。‘X’ 和 ‘O’ 只能放在空方格中,而不能放在已经被占用的方格上。只要有 3 个相同的(非空)棋子排成一条直线(行、列、对角线)时,游戏结束。如果所有方块都放满棋子(不为空),游戏也会结束。游戏结束后,棋子无法再进行任何移动。

2025-06-16 16:46:58 349

原创 力扣——编程基础 67. 二进制求和

给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。

2025-06-16 16:22:59 223

原创 力扣——编程基础43. 字符串相乘

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。

2025-06-16 16:06:35 162

原创 力扣——编程基础 657. 机器人能否返回原点

在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。“R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。

2025-04-17 17:37:27 233

原创 力扣——编程基础682. 棒球比赛

你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x“+” - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。“D” - 表示本回合新获得的得分是前一次得分的两倍。

2025-04-17 17:31:01 376

原创 力扣——编程基础 709.转换成小写字母

给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。

2025-04-17 16:26:42 278

原创 力扣——编程基础 58.最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

2025-04-17 16:06:20 376

原创 力扣——编程基础13.罗马数字转整数

罗马数字 2写做 II,即为两个并列的1。12写做 XII,即为 x+II。27写做 XXVII,即为 xx +v+ II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如4不写做 IIII,而是 IV。数字1在数字5的左边,所表示的数等于大数5减小数1得到的数值4。同样地,数字9表示为 IX。这个特殊的规则只适用于以下六种情况:I可以放在 v(5) 和 x(10) 的左边,来表示 4 和 9。x可以放在 L(50) 和 c(100) 的左边,来表示 40 和 90。

2025-04-17 15:49:07 381

原创 力扣——编程基础 896.单调数列

如果数组是单调递增或单调递减的,那么它是 单调 的。如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。如果对于所有 i <= j,nums[i] >= nums[j],那么数组 nums 是单调递减的。当给定的数组 nums 是单调数组时返回 true,否则返回 false。

2025-04-17 11:10:30 320

原创 力扣——编程基础1502. 判断能否形成等差数列

给你一个数字数组 arr。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列。如果可以重新排列数组形成等差数列,请返回 true;否则,返回 false。

2025-04-16 17:14:28 234

原创 力扣——编程基础 1822. 数组元素积的符号

已知函数 signFunc(x) 将会根据 x 的正负返回特定值:如果 x 是正数,返回 1。如果 x 是负数,返回 -1。如果 x 是等于 0 ,返回 0。给你一个整数数组 nums。令 product 为数组 nums 中所有元素值的乘积。返回 signFunc(product)。

2025-04-15 17:07:12 141

原创 力扣——编程基础 66.加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。

2025-04-15 16:42:06 393 1

原创 力扣——编程基础 283.移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。

2025-04-15 15:40:18 351

原创 力扣——编程基础 459.重复的字符串

给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

2025-04-15 11:52:56 210

原创 力扣——编程基础 242有效的字母异位词

242 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。

2025-04-15 11:13:31 623 1

原创 力扣——编程基础 28找出字符串第一个匹配项的下标

请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从0开始)。如果 needle 不是 haystack 的一部分,则返回 -1给你两个字符串 haystack 和 needle ,示例 1:输入:haystack=“sadbutsad”,needle =“sad”输出:0解释:“sad"在下标 0和6 处匹配。第一个匹配项的下标是 0 ,所以返回 0。

2025-04-15 10:50:33 366

原创 力扣——编程基础 389找不同

给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = “abcd”, t = “abcde”输出:“e”解释:‘e’ 是那个被添加的字母。示例 2:输入:s = “”, t = “y”输出:“y”提示:s 和 t 只包含小写字母。

2025-04-14 14:14:02 1716

原创 力扣——编程基础 1768交替合并字符串

给你两个字符串 word1 和 word2。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串。

2025-04-11 11:46:43 406

原创 contextmanager 装饰器( Python 标准库)

当 with 语句块结束时,控制权返回到 get_db_connection 函数,继续执行 finally 块中的代码,确保资源被正确关闭。contextlib 中的一个装饰器用于简化上下文管理器的创建,上下文管理器允许你在使用 with 语句时自动管理资源的获取和释放。如果配置文件中的内容不可信,建议使用更安全的方法来解析字符串,例如通过模块查找或直接导入相应的类。当 with 语句开始执行时,get_db_connection 函数运行到 yield 语句之前的所有代码。

2025-04-10 15:13:22 340

转载 MongoDB 与 MySQL 对比

MongoDB主要通过分片集群(Sharded Cluster)实现。这种组合可以发挥两种数据库各自的优势。✔ 需要复杂JOIN操作的场景。✔ 财务系统(需要严格事务)✔ 已有大量SQL经验的团队。✔ 内容管理系统(CMS)✔ 需要快速迭代的原型开发。✔ 物联网(IoT)应用。✔ 处理高度非结构化数据。

2025-04-09 17:30:13 960

转载 爬虫中使用WebSocket

HTTP 是短连接,每次请求需重新握手,适合低频请求;WebSocket 是长连接,一次握手后双向实时通信,适合高频数据(如聊天、行情)。比如我曾在XX项目中用 WebSocket 替代 HTTP 轮询,服务器负载降低 70%。

2025-04-09 16:08:07 1024 2

转载 WebSocket协议

✅ 握手成功后,连接就从 HTTP 升级为 WebSocket 了!

2025-04-09 15:49:12 227 1

空空如也

空空如也

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

TA关注的人

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