摘要: 6.10 阅读全文
posted @ 2024-06-08 21:50 JJJhr 阅读(15) 评论(0) 推荐(0)
摘要: 1.桥接模式定义:将抽象与实现分离,使他们可以独立的变化。它是用组合关系代替继承关系来实现,用于多个维度变化的实例,如图形既可按形状分,又可按颜色分。 优点: 1)由于抽象与实现分离,所以扩展能力强;2)其实现细节对客户透明。缺点:由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,这增加 阅读全文
posted @ 2024-06-08 21:41 JJJhr 阅读(29) 评论(0) 推荐(0)
摘要: 一、vim编辑器的使用 00、利用输出重定向将man ls的执行的结果输出到文件man.ls中 man ls >man.ls 01、使用 vim打开本目录下的man.ls文本文件,设定行号;(在命令模式下输入命令set nu) vim man.ls set.nu 02、移动到第 58 行行首,再向右 阅读全文
posted @ 2024-06-08 21:29 JJJhr 阅读(49) 评论(0) 推荐(0)
摘要: Selenium 的使用 Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些 JavaScript 动态渲染的页面来说,此种抓取方式非常有效。 准备工作 Chrome 为例来讲解 Sel 阅读全文
posted @ 2024-06-02 01:27 JJJhr 阅读(124) 评论(0) 推荐(0)
摘要: logging.basicConfig() 是 Python 标准库 logging 模块中的一个函数,用于配置日志记录器(logger)的基本选项。这个函数允许你在不创建和配置多个 logger、handler 和 formatter 的情况下,快速地为你的应用程序设置日志记录。 以下是一些 ba 阅读全文
posted @ 2024-06-01 14:32 JJJhr 阅读(903) 评论(0) 推荐(0)
摘要: 在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,而使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档,而浏览器中的页面则是经过 JavaScript 处理数据后生成的结果,这些数 阅读全文
posted @ 2024-05-30 01:54 JJJhr 阅读(35) 评论(0) 推荐(0)
摘要: 用解析器解析出数据之后,接下来就是存储数据了。保存的形式可以多种多样,最简单的形式是直接保存为文本文件,如 TXT、JSON、CSV 等。另外,还可以保存到数据库中,如关系型数据库 MySQL,非关系型数据库 MongoDB、Redis 等。除了这两种也可以吧数据存储到搜索引擎(如Elasticse 阅读全文
posted @ 2024-05-29 01:58 JJJhr 阅读(193) 评论(0) 推荐(0)
摘要: 案例介绍 爬取一个数据量较大的软件,链接为https://spa5.scrape.center,页面如下图所示: 这是一个图书网站,整个网站包含数千本图书信息,网站数据是 JavaScript 渲染而得的,数据可以通过 Ajax 接口获取,并且接口没有设置反爬措施和加密参数。且网站数据量多,更适合异 阅读全文
posted @ 2024-05-29 01:57 JJJhr 阅读(121) 评论(0) 推荐(0)
摘要: 爬虫是 IO 密集型任务,例如使用 requests 库来爬取某个站点,发出一个请求之后,程序必须要等待网站返回响应之后才能接着运行,而在等待响应的过程中,整个爬虫程序是一直在等待的,实际上没有做任何的事情。对于这种情况我们有没有优化方案呢? 协程的基本原理 要实现异步机制的爬虫,自然和协程脱不了关 阅读全文
posted @ 2024-05-29 01:56 JJJhr 阅读(78) 评论(0) 推荐(0)
摘要: 在上一节中介绍了异步爬虫的基本原理和 asyncio 的基本用法,并且在最后简单提及了使用 aiohttp 来实现网页爬取的过程。本节介绍一下 aiohttp 的常见用法。 基本介绍 前面介绍的 asyncio 模块内部实现了对 TCP、UDP、SSL 协议的异步操作,但是对于 HTTP 请求来说, 阅读全文
posted @ 2024-05-29 01:56 JJJhr 阅读(289) 评论(0) 推荐(0)