自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 爬虫-实战爬取虎扑ACG帖子

要求如下:爬取虎扑步行街 ACG 版面的数据,要求使用多线程来并发爬取。范围是第一页的所有帖子,每个帖子包含标题、主题内容和第一页的所有回复内容。最后打印出爬到的所有帖子的标题。。

2024-07-28 20:52:46 620

原创 爬虫-通过几个例子来说明并发以及多线程

什么是并发?并发,在中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个上运行,但任一个时刻点上只有一个程序在处理机上运行。嗯,字认识,但是连在一起就有点够呛,哈哈,开个玩笑。

2024-07-28 15:24:37 1659

原创 爬虫-存储数据

exce文件也被称为,其可以创建多个。每个工作表是由很多个组成。我们通过openpyxl来操作Excel文件。安装使用openpyxl中的Workbook类实例化了一个工作簿,即创建了一个空的Excel文件。前面也说了工作簿是由很多工作表组成的,通过wb.active选择了默认的工作表,title属性重命名了默认工作表。既然我们已经选择了工作表,那就应该往工作表中写入数据了,前面我们也说过,工作表是由很多单元格组成,我们上面就是往特定的单元格内写入数据。上面我们是通过字典赋值的方式写入的。

2024-07-16 15:07:57 1664

原创 爬虫-浏览器自动化

selenium是浏览器自动化测试框架,原本用于网页测试。但到了爬虫领域,它又成为了爬虫的好帮手。有了,我们便不再需要判断网页数据加载的方式,只要让自动控制浏览器,就像有双无形的手,控制着你的鼠标和键盘,自动地帮你干活。爬取数据?自动抢票?这些当然统统都不在话下。

2024-07-11 20:34:29 1408

原创 爬虫-爬取豆瓣读书所有数据

代码中我们封装了一个get_one_page_data()方法,参数是页数page,再结合for循环,实现了爬取了所有的数据。代码中我们创建了字典params,并为start键赋值为0,接着我们通过参数params吧定制的查询参数传递给。,并且随着页码的增加,小尾巴中数字部分也在增加。在此使用了time.sleep(1)来暂停1秒的目的是为了网站反爬虫,把我们给封了。中,我们只是获取了第一页的25条数据,剩余的9页数据如何爬取呢?开头的内容也是 URL 重要组成部分之一,被称为。

2024-07-08 15:33:13 523

原创 爬虫-豆瓣读书排行榜

获取数据环节需要用到库。安装方式也简单爬取页面用requests库来访问res长什么样呢?我们打印一下变量res的值是,怎么回事呢?

2024-07-04 16:56:36 783

原创 爬虫-网页基础

HTML:Hyper Text Markup Language, 超文本标记语言,是计算机语言的一种,由元素构成。由三大部分组成互联网中必不可少的一个要素是超链接,对应到HTML语言中就是a元素。分析:a元素的开始标签中有许多额外信息,这些信息就是元素的 属性。元素的属性需要写在开始标签中,写成 属性名称="属性值"。元素的属性是额外信息,不会直接展示给用户,而是提供给浏览器、程序解析使用。上面的例子中 href 和 target 是a元素的两条属性。注:属性值是用英文双引号,多个属性之间使用一个空格隔开

2024-07-03 17:34:51 1534

原创 爬虫-模拟登陆博客

我们理解下代码中的东西。

2024-06-13 23:31:36 1696

原创 爬虫-电影影评爬取

点击其头headers,拉到最下面,找到了Referer以及User-Agent,此值直接获取,(上面代码中的user-agent以自己电脑为准)。来说,进入此网页,打开开发者模式,点击Network->XHR,因为我们找的是评论,其英文是comment,如下我们找到了。result我们知道是获取出来的结果,但是.json的意义是什么?:字面意思是排序方式,而我们发现,短影评页的右上方的确是有这个选项的。同样是来源于headers中,有个Request URL,它的值是。后面的参数为查询参数,

2024-06-12 21:59:24 1249

原创 leetcode-七进制数

【代码】leetcode-七进制数。

2024-03-21 09:07:49 398 1

原创 leetcode-二叉搜索树中的众数

【代码】leetcode-二叉搜索树中的众数。

2024-03-21 08:56:26 274

原创 leetcode-键盘行

【代码】leetcode-键盘行。

2024-03-17 15:17:22 767

原创 leetcode-下一个更大的元素I

【代码】leetcode-下一个更大的元素I。

2024-03-17 14:53:15 525

原创 leetcode-提莫攻击

【代码】leetcode-提莫攻击。

2024-03-15 08:57:08 605

原创 leetcode-构造矩形

【代码】leetcode-构造矩形。

2024-03-15 08:37:48 387

原创 leetcode-最大连续1的个数

这个问题可以通过遍历数组并使用一个计数器来解决。我们可以从左到右遍历数组,每次遇到1就将计数器加1,遇到0就将计数器重置为0。同时,我们需要维护一个变量来记录遍历过程中遇到的最大的连续1的个数。

2024-03-11 09:57:03 391

原创 leetcode-秘钥格式化

【代码】leetcode-秘钥格式化。

2024-03-11 09:41:06 488

原创 leetcode-数字的补数&汉明距离

以上两道题都用到了异或来解决。

2024-03-06 09:09:16 502

原创 leetcode-岛屿的周长

要计算岛屿的周长,我们可以遍历整个网格,对于每个为陆地的格子,检查其四周(上、下、左、右)相邻的格子。如果相邻的格子是水域(或者是网格的边界,意味着在网格边缘的陆地),则说明这个方向对岛屿的周长做出了贡献。我们可以通过这样的方式来累加总的岛屿周长。

2024-03-06 08:55:58 469

原创 leetcode-重复的子字符串

与自身拼接,然后去掉新字符串首尾各一个字符,接着在这个新构造的字符串中查找原字符串。在新字符串中的位置不是起始位置(即位置不为 0),那么原字符串。必然能在这个新字符串中找到,而且不会出现在起始位置。可以由它的一个子串重复构成,那么在将。与自身拼接并去掉首尾字符后,原字符串。还可以利用一种巧妙的方法:将字符串。可以由它的一个子串重复多次构成。这个方法的原理是,如果字符串。

2024-03-04 09:43:52 570

原创 leetcode-分发饼干

【代码】leetcode-分发饼干。

2024-03-04 09:17:16 495

原创 leedcode-找到所有数组中消失的数字

【代码】leedcode-找到所有数组中消失的数字。

2024-03-02 09:35:59 389

原创 leetcode-排列硬币

【代码】leetcode-排列硬币。

2024-03-02 09:15:27 418

原创 leetcode-字符串中的单词数

这个问题可以通过遍历字符串,当遇到非空格字符时,判断其前一个字符是否为空格,如果是,则说明这是一个新的单词的开始,计数器加一。最后返回计数器的值即可。

2024-03-02 08:52:51 395

原创 leetcode-字符串相加

题目中已经说明不能使用库函数直接将输入的字符串转换为整数。这就需要我们自己实现大数加法的逻辑,我们可以从两个字符串的最后一位开始,逐位相加,同时记录进位。如果某一位相加的结果超过10,那么需要向前进位。最后将结果转换为字符串返回。

2024-03-02 08:48:08 606

原创 leetcode-第三大的数

关键思路是维护一个大小为3的最小堆,这样堆顶始终是这个堆中最小的数,当堆的大小超过3时,我们可以弹出最小的数,最后堆中剩下的就是数组中最大的三个数。如果堆的大小小于3,说明不存在第三大的数,则返回堆中的最大数。先去重,然后降序排序,去重排序后的数组的长度大于等于3的时候,取下标为2的即为结果值,当去重后的数组长度小于3,取最大值即可。使用堆(特别是最小堆)来解决这个问题,可以帮助我们保持跟踪数组中最大的三个数。在Python中,我们可以使用标准库。你能设计一个时间复杂度。

2024-03-01 09:42:37 592

原创 leetcode-Fizz Buzz

412. Fizz Buzz本题直接按照所给的条件直接编码即可。class Solution: def fizzBuzz(self, n: int) -> List[str]: res = [] for i in range(1, n + 1): if i % 3 == 0 and i % 5 == 0: res.append("FizzBuzz") elif i % 3

2024-03-01 09:00:52 754

原创 leetcode-最长回文串

【代码】leetcode-最长回文串。

2024-02-29 09:31:05 596

原创 leetcode-数字转换为十六进制

【代码】leetcode-数字转换为十六进制。

2024-02-29 09:07:11 532

原创 leetcode-左叶子之和

深度优先搜索(DFS):深度优先搜索是一种通过递归来实现的算法,它可以用来遍历树的所有节点。在遍历过程中,当你发现一个左叶子节点(即该节点是其父节点的左子节点,并且它自己没有子节点)时,就将其值加到总和中。广度优先搜索(BFS):广度优先搜索通常使用队列来实现,它按层级遍历树的节点。在遍历过程中,同样检查是否遇到了左叶子节点,并累加其值。

2024-02-28 10:55:33 556

原创 leetcode-二进制手表

要解决这个问题,你可以通过遍历所有可能的小时和分钟组合,检查每个组合中亮着的LED灯的总数是否等于。为了找到所有符合条件的时间,需要使用位运算来计算每个小时和分钟组合中亮着的LED灯的数量。

2024-02-28 10:35:05 420

原创 leetcode-判断子序列

这个方法利用了“t的长度可能远大于s”和“可以接受预处理开销以换取整体效率提高”的特点。以下是对应的代码思路。,创建一个索引,以便快速跳过不匹配的字符。为了提高效率,可以预处理。对于进阶问题,如果有大量的。字符串需要检查它们是否为。

2024-02-26 09:39:20 469

原创 leetcode-找不同

从题意我们可以知道,虽然 t 是由 s组成,但是 t中又随机添加了一个字符,也就是相当于 t 包含 s,我们使用字典,将 t 转换成字典对应关系t_map,然后遍历 s 中的字符,若存在,则t_map中对应的键值减一,最后遍历t_map,键值不为0的key即为添加的。

2024-02-26 09:14:34 443

原创 leetcode-字符串中的第一个唯一字符

【代码】leetcode-字符串中的第一个唯一字符。

2024-02-24 09:32:24 532

原创 leetcode-赎金信

中的字符在rans_map中,则相应的字符个数减一,然后遍历rans_map,若值大于0,这说明。映射成字符与字符个数的映射关系rans_map,然后遍历。中的字符是满足条件的,那我们使用字典,将。中的每个字符个数应该多于等于。

2024-02-24 09:24:55 739

原创 leetcode-猜数字大小

374. 猜数字大小题解:使用二分法class Solution: def guessNumber(self, n: int) -> int: start = 1 end = n while start <= end: mid = (start + end) // 2 res = guess(mid) if res == 0:

2024-02-23 09:30:13 542

原创 leetcode-有效的完全平方数

【代码】leetcode-有效的完全平方数。

2024-02-23 09:19:30 503

原创 leetcode-两个数组的交集II

的区别是,349输出的是一个集合后的数据,本题是要求出现的次数一致,不能求集合后的。

2024-02-22 08:54:39 496

原创 leetcode-两个数组的交集

可以使用哈希表来解决这个问题。首先遍历第一个数组 nums1,将其元素存入哈希表中。然后遍历第二个数组 nums2,检查哈希表中是否存在该元素,如果存在则将该元素添加到结果集中,并从哈希表中删除该元素。

2024-02-22 08:45:47 421

原创 leetcode-反转字符串中的元音字母

此题和前面的344题反转字符串基本一样,不同之处是:1.反转的是字符串中的元音字母,2.输入的是字符串不是数组。

2024-02-20 08:50:54 496

空空如也

空空如也

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

TA关注的人

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