Ayugespidertools

Latest version: v3.10.1

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

Scan your dependencies

Page 8 of 10

1.0.18

更新内容

> 新功能添加:

- 将 `scrapy` 依赖更新为目前最新的 `2.8.0` 版本。
- `settings.py.tmpl` 模板中添加默认开启 `TWISTED_REACTOR` 等参数。

> 部分场景优化:

- 增加在自动创建 `Mysql`数据表场景下常用 `charset` 与其默认 `collate` 的映射类型。
- 将 [black format](https://black.readthedocs.io/en/stable/) 编码风格应用于使用 `genspider`和 `startproject` 命令生成的文件。

> bug 修复:

- 修复脚本运行信息统计和项目依赖表采集量统计功能开启,即 `RECORD_LOG_TO_MYSQL` 打开时,其中存在的 `sql` 统计语句问题(当所需跟踪记录的数据库中存在有数据表的字段不存在 `crawl_time` 时,造成 `sql` 查询错误)。

1.0.17

更新内容

> 主要为部分代码结构优化整理,增加可读性

- 代码结构整理:
- 优化 `pipelines` 中有关数据库常见错误处理、项目运行信息统计等功能,将其重复代码作为 `Mixin` 独立出来。
- 将代码中重复的或没必要的格式转换等去除,增加可读性
- 将 `GIF` 示例更换为字号清晰的版本
- 修改模板文件:
- 限制数据库表枚举信息 `TableEnum` 的字段唯一
- 修改 `settings.py.tmpl` 模板中 `loguru` 示例的配置

1.0.16

更新内容

> bug 修复;部分代码整理

- 补充 `pipelines` 中异步存储 `Mysql` 场景下缺失的 `slog` 日志管理模块。
- 在测试文件 `test_Items.py` 中添加对 `Scrapy` `Item Loaders` 的 `add_value`, `add_xpath`, `add_css` 的支持示例,提供方案示例。

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>

Page 8 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.