Ayugespidertools

Latest version: v3.11.2

Safety actively analyzes 723326 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 11

1.0.15

更新内容

> 日志模块功能再次优化

- 日志模块优化

解决在 `spider` 爬虫脚本中使用 `self.slog` 时无联想提示的问题。是因为没有初始化 `slog` 方法,将 `slog` 改为与 `spider.logger` 一样的定义方式。

在 `spider` 中的调用示例如下,其它场景(`middlewares`,`pipelines` 等) 中不再举例:

python
这个 logger 在本库创建项目(本示例的项目名为:DemoSpider)后会在项目的 settings 中自动生成其配置,你可自行修改其配置
from DemoSpider.settings import logger
from ayugespidertools.AyugeSpider import AyuSpider

class MySpider(AyuSpider):

name = 'myspider'
start_urls = ['https://scrapy.org']

custom_settings = {
scrapy 日志等级配置
'LOG_LEVEL': 'DEBUG',
设置自定义的 logger 日志配置
'LOGURU_CONFIG': logger,
}

def parse(self, response):
self.slog.info(f'Parse function called on: {response.url}')


注:

1. 使用 `self.slog` 和 `spider.slog` 时要使用 `loguru` 打印的方式。
2. 日志功能的使用方法与之前是一致的,均不影响之前的 `spider.slog` 和 `scrapy` 的 `spider.logger`。

1.0.14

更新内容

> 日志模块功能优化

- 日志模块优化

优化本库中 `loguru` 的日志管理功能。考虑到 `Loguru` 的理念是:**只有一个 [`logger`](https://loguru.readthedocs.io/en/stable/api/logger.html#loguru._logger.Logger)**。

本库不再在初始化 `spider` 时使用其 `add`,`remove` 等相关方法来操作日志,会造成控制台日志重复等问题,虽说可以配合使用 `filter` 等其它方式分别管理日志,但是还是不太方便和直观。

> 所以,本库的 `loguru` 日志管理修改如下:

- 当设置 `LOGURU_ENABLED` 为 `True` (默认为 `True`)时:
- 如果又配置了 `LOGURU_CONFIG`,则会使用传入的配置
- 否则直接使用全局的 `logger`,不再另行修改和配置。

- 当设置 `LOGURU_ENABLED` 为 `False` 时:
- 则本库 `spider.slog` 使用的还是 `scrapy` 的 `spider.logger`


注:
- 本库模板中 `loguru` 日志默认只存储 `warning` 级别及以上的消息。`scrapy` 日志文件名为项目名,存储在项目 `logs` 文件夹下。
- 据上可知,`loguru` 模块的 `level` 也不会与 `scrapy` 的 `LOG_LEVEL` 关联了。

> 本库中日志管理示例之一,如下:
>

python
以下配置功能解释为(可按场景自行修改):
'''
scrapy 日志中 INFO 级别及以上持久化存储至 logs 文件夹下
loguru 日志功能关闭,本库中由 `spider.slog` 记录的日志也会持久化至 logs 文件夹下的 `scrapy` 日志文件中
'''

在 spider 中或 setttings 中配置 LOGURU_CONFIG 参数
custom_settings = {
scrapy 日志等级配置
'LOG_LEVEL': 'INFO',
设置 ayugespidertools 库的日志输出为 loguru,可自行配置 logger 规则来管理项目日志。若不配置此项,库日志只会在控制台上打印
'LOGURU_CONFIG': logger,
'LOGURU_ENABLED': False,
}


- 模板示例修改

ini
1. 修改模板文件中部分字段的拼写错误
2. 增加日志相关的配置参数示例

1.0.13

更新内容

> 功能添加及修复,微小更新

- 添加 `scrapy` 的 `CrawlSpider` 对应本库的 `AyuCrawlSpider`

shell
主要是给 `CrawlSpider` 也添加上 `AyuSpider` 中自动生成对应场景的 `item`,`pipeline` 等功能,可以同样不用管理 `item`,`pipeline` 和常见的 `middleware`


- 更新对应的 `crawl.tmpl` 模板


可通过以下命令生成对应 `spider` 脚本

查看模板支持列表
ayugespidertools genspider -l

生成 `AyuCrawlSpider` 语法的 `spider` 脚本示例
ayugespidertools genspider -t crawl <spider_name> <example.com>

运行生成的示例(使用 `scrapy` 支持的执行命令即可)
scrapy crawl <spider_name>

1.0.12

更新内容

> `bug` 修复,代码整理优化

- 修复使用本库在编写 `spider` 脚本的 `async def` 的协程支持语法时的错误

- 添加支持 `asyncio` 协程语法的 `spider` 脚本编写示例 `async.tmpl`,相关命令如下:

shell
可根据命令查看和生成对应的支持协程语法的 `spider` 脚本示例

查看模板支持列表
ayugespidertools genspider -l

生成支持 `asyncio` 语法的 `spider` 脚本
ayugespidertools genspider -t async <spider_name> <example.com>

运行生成的示例(使用 `scrapy` 支持的执行命令即可)
scrapy crawl <spider_name>


- 日志模块整理

优化库中使用 `loguru` 的功能,将其日志输出等级与 `scrapy` 的 `LOG_LEVEL` 参数关联,即此库控制台只输出对应 `scrapy` 的 `LOG_LEVEL` 等级及以上的日志内容,更方便调试和查看等场景。不配置则默认打印 `DEBUG` 级别及以上的所有日志。

- 设置默认请求指纹器类的请求指纹算法版本为 `2.7`,主要是用于消除 `scrapy` 运行警告,可自行修改和更新此配置。

- `scrapy` 的依赖版本更新至最新的 `2.7.1`

1.0.11

更新内容:

> 微小更新

- `MongoDB` 存储场景下,添加存储集合的前缀参数 `MONGODB_COLLECTION_PREFIX`

- 添加 `tests` 文件下使用 [[node-canvas](https://github.com/Automattic/node-canvas)](https://github.com/Automattic/node-canvas) `api` 还原乱序 `canvas` 的示例

- 顶象乱序滑块底图还原:`node_canvas_demo2.js`
- 极验乱序滑块底图还原:`node_canvas_demo1.js`

暂未想到如何使用通用方法直接转换 `canvas`,不如直接使用 `node-canvas` 手动转化即可;

通过 `background-position` 重组验证码图片的方法也暂未写通用方法,网上和本库中也有示例。

- 说明文档中添加 `GIF` 演示

1.0.10

更新内容:

- 添加和优化阿里 `oss` 上传、删除等封装方法
- 添加在 `ayugespidertools startproject <startproject>` 时,生成启动文件 `run.py` 和 `run.sh` 的文件的方法
- 可修改 `run.py` 文件后,运行 `run.sh` 的 `shell` 文件来方便地运行脚本
- 修改 `config` 配置信息中的配置名称,改为通用名称,去除无效前缀
- 添存生成 `Data URLs` 的图片格式方法,参考文档:[Data URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs)
- 修改模板文件中的 `basic.tmpl` 内容
- 增加库 `logo`
- 代码结构整理

Page 9 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.