Release notes¶
AyugeSpiderTools 3.9.7 (2024-03-08)¶
Deprecations¶
无。
New features¶
Bug fixes¶
修复
aiohttp
场景下由于目标网站未遵守编码时可能会出现的编码问题。(d2772b5)
Code optimizations¶
添加
aiohttp
可支持的请求方式。(c7c247e)优化
oss
,file download
场景的pipeline
示例,减少复杂逻辑。(b0929d8, f0f1b2f)测试场景增加剔除无关代码块的规则。(3e0ce94)
代码风格统一,补充缺失的
type hint
,提升开发体验。
AyugeSpiderTools 3.9.6 (2024-02-18)¶
Deprecations¶
无。
New features¶
无。
Bug fixes¶
修复 mysql 存储引擎 engine 参数未生效的问题。(1240e37)
Code optimizations¶
AyugeSpiderTools 3.9.5 (2024-01-30)¶
Deprecations¶
无。
New features¶
Bug fixes¶
Code optimizations¶
mq
场景添加关闭链接处理。(ac54fd0)更新
readthedocs
中的教程指南,以方便快速上手。更新部分依赖库版本。
AyugeSpiderTools 3.9.4 (2024-01-10)¶
Deprecations¶
无。
New features¶
Bug fixes¶
无。
Code optimizations¶
mypy check。(
785e36a
)
AyugeSpiderTools 3.9.3 (2023-12-30)¶
Deprecations¶
无。
New features¶
无
。
Bug fixes¶
解决
pip install ayugespidertools
并执行简单场景时提示oracledb
的依赖缺失问题。(e363937
)
注:出现此问题又是因为未重新新建环境来测试,且使用 Pycharm ssh
远程开发时不会自动索引环境依赖导致,所以未检视出项目依赖的问题。后续也会添加对 DemoSpider
场景的测试自动化来完善测试流程。
由于对用户体验影响较大,先修复此问题并发布。
Code optimizations¶
统一代码风格。(
ecb97e8
)
AyugeSpiderTools 3.9.2 (2023-12-28)¶
Deprecations¶
无。
New features¶
mysql
配置项支持自定义自动创建库表场景的engine
和collate
参数。(e652666
)
Bug fixes¶
解决
settings
模板生成的LOG_FILE
不是当前项目名的问题。(93c19d6
)
Code optimizations¶
更新
spider
模板,模板中解析方式改为scrapy
的形式,防止对开发者造成理解成本。(91ad948
)更新
spider
模板中的type hint
,优化了开发者使用体验。(c2a0908
)优化一些数据库连接处理和配置解析方法等。
AyugeSpiderTools 3.9.1 (2023-12-22)¶
Deprecations¶
无。
New features¶
添加
postgresql
的asyncio
的AsyncConnectionPool
存储场景支持。(341e768
)
Bug fixes¶
解决
asyncio
协程场景下的spider
的AyuItem
写法风格不兼容的问题。(66177e4
)
Code optimizations¶
更新
spider
模板示例。(61e10b1
)
AyugeSpiderTools 3.9.0 (2023-12-18)¶
Deprecations¶
AsyncMysqlPipeline
改名为AyuAsyncMysqlPipeline
。AsyncMongoPipeline
改名为AyuAsyncMongoPipeline
。删除
oss
的模块及依赖。
注:最新示例请在 DemoSpider 中查看,以往旧版请切换对应分支查看。
New features¶
添加
oracle
的存储场景支持,目前有fty
及twisted
两种方式。添加
mongodb:uri
的配置方式。
Bug fixes¶
解决
asyncio mysql
协程场景下可能会出现的被垃圾回收而阻塞的问题。解决
mysql
或postgresql
的错误处理场景下由于权限等问题造成的循环递归问题。
Code optimizations¶
优化
.conf
模板示例,配置更明确且更易管理。mypy check
.
AyugeSpiderTools 3.8.0 (2023-12-03)¶
Deprecations¶
MYSQL_ENGINE_ENABLED
的配置项名改为DATABASE_ENGINE_ENABLED
,目前支持msyql
和postgresql
。安装再添加
database
选项,可通过pip install ayugespidertools[database]
安装所需的所有数据依赖及扩展。
注意:此变更包含不兼容部分,需要着重注意的部分如下:
删除了
MYSQL_ENGINE_ENABLED
配置项;由于
SQLAlchemy
依赖升级到了2.0+
新版本,与以往的去重使用有变化,具体请查看本库readthedocs
文档。
New features¶
支持
python3.12
。添加
postgresql
的存储场景支持,目前有fty
及twisted
两种方式。DATABASE_ENGINE_ENABLED
的配置目前会激活对应场景中数据库的engine
和engine_conn
以供去重使用。将
psycopg
相关的数据库扩展依赖改为可选项,可通过pip install ayugespidertools[database]
安装所需依赖。
Bug fixes¶
无。
Code optimizations¶
优化
type hints
。更新生成脚本模板以匹配新版本,也可使用以往
pandas
去重方式。更明确的日志信息。
AyugeSpiderTools 3.7.0 (2023-11-23)¶
Deprecations¶
获取
nacos
和consul
中的配置时不再转小写,请按照 readthedocs 示例填写。删除
html2text
相关依赖及代码,此场景更适合自行实现。安装不再包含非核心依赖,可通过
pip install ayugespidertools[all]
安装全部依赖。一些
api
变动:
更改前 | 更改后 | 受影响的部分 | 备注 |
---|---|---|---|
extract_html_to_md | 删除 | ayugespidertools.formatdata | |
AliOssBase | 转移到 ayugespider.extras 中 | ayugespidertools.oss | |
yidungap, imgoperation, verificationcode | 转移到 ayugespider.extras 中,并整理在一起 | ayugespidertools.imgoperation ayugespidertools.verificationcode ayugespidertools.common.yidungap |
在 extras 部分查看变化。 |
以下是对
extras
相关模块所影响较大部分的介绍:
更改前 | 更改后 | 受影响的部分 | 备注 |
---|---|---|---|
YiDunGetGap.discern | CvnpilKit.discern_gap | ayugespidertools.common.yidungap | |
Picture.identify_gap | CvnpilKit.identify_gap | ayugespidertools.imgoperation | |
match_img_get_distance | CvnpilKit.match_gap | ayugespidertools.verificationcode | |
get_normal_track | CvnpilKit.get_normal_track | ayugespidertools.verificationcode | |
get_selenium_tracks | ToolsForAyu.get_selenium_track | ayugespidertools.verificationcode |
注意:
此变更包含不兼容部分,如果你只使用其中
scrapy
扩展库部分,那么除了nacos
,consul
的yaml
和hcl
解析外对你无影响。再次提醒,使用时请做好依赖管理,以免不兼容部分对你的影响!
New features¶
mongo
场景添加authMechanisem
配置选项,为可选配置,默认为SCRAM-SHA-1
。将
numpy
,oss
,pillow
等非核心依赖改为可选项,可通过pip install ayugespidertools[all]
安装所有依赖。
Bug fixes¶
无。
Code optimizations¶
优化
aiohttp
,cvnpil
等测试用例,将图像相关功能整理并放入cvnpil
模块中。ayuge version
修改为从__version__
获取信息的方式。更新模板,
mysql_engine
的示例改为通过sqlalchemy
的方式,减少依赖数且大部分场景运行效率更好。将可选装依赖的相关的功能代码统一放入
extras
中,更易管理。
AyugeSpiderTools 3.6.1 (2023-11-06)¶
New features¶
无。
Bug fixes¶
解决
mq
推送场景时yield AyuItem
时的错误,现可支持多种格式。解决
VIT_DIR
默认参数未存储至settings
中的问题。
Code optimizations¶
文件下载场景添加
FILES_STORE
路径不存在时的自动创建处理。settings
模板删除无关配置。项目添加
question issues template
。
AyugeSpiderTools 3.6.0 (2023-10-31)¶
Deprecations¶
一些
api
变动:
更改前 | 更改后 | 受影响的部分 | 备注 |
---|---|---|---|
删除 LOGURU_CONFIG 配置参数 |
现只需配置 LOGURU_ENABLED 即可 |
slog 日志模块 |
|
删除 spider 中 settings_type 参数 |
此为过度设计,若需要可自定义配置 | 项目配置信息 | |
删除 spider 中 mysql_engine_enabled 参数 |
转移到设置中,名称为 MYSQL_ENGINE_ENABLED |
配置模块,影响较大。 | |
AyuItem 中 _table 参数类型修改删除 spider 中 custom_table_enum 参数 |
修改为与普通字段一样的 DataItem 或 str 类型,删除 demand_code 字段。 |
spider ,Item 模块 |
|
删除 RECORD_LOG_TO_MYSQL 配置参数 |
改为 ayugespidertools.pipelines.AyuStatisticsMysqlPipeline 方式调用。 |
配置模块 |
注意:此变更包含不兼容内容,请修改不兼容部分并调试正常后再投入生产;本项目在有一些不兼容变更时,会发布 Minor
及以上的版本包,请做好依赖版本管理。
New features¶
无。
Bug fixes¶
无。
Code optimizations¶
设置
VIT_DIR
默认参数。去除冗余配置,统一配置风格。将一些过于复杂的模块拆分,便于管理。
AyugeSpiderTools 3.5.2 (2023-10-17)¶
New features¶
添加从
nacos
中获取配置的方法,若.conf
中同时存在consul
和nacos
配置则优先使用consul
;即优先级consul
>nacos
。
Bug fixes¶
无
Code optimizations¶
删除
.conf
示例中的无用配置wxbot
。优化从本地
.conf
获取配置的逻辑,也提供更清晰明确的报错信息。tox
重新添加了windows
场景。更新
CI
工具版本。
AyugeSpiderTools 3.5.1 (2023-09-28)¶
Bug fixes¶
修复在
py 3.11
及以上版本的mongo
相关场景的报错。(issue 11)
Code optimizations¶
优化
AyuItem
实现,增强可读性及用户输入体验,比如add_field
增加IDE
参数提示功能。更新文档中
AyuItem
的使用建议及对应测试。更新测试文件,比如
test_crawl
及spider
相关方法。
AyugeSpiderTools 3.5.0 (2023-09-21)¶
Bug fixes¶
无。
Code optimizations¶
scrapy
依赖升级为2.11.0
。统一运行统计的方法,修改运行
stats
中有关时间的获取和计算方法。添加
pre-commit
工具和CI
,提升commit
和pull request
体验。更新
readthedocs
的新配置。优化
test_crawl
的测试方法。
AyugeSpiderTools 3.4.2 (2023-09-15)¶
Bug fixes¶
修复
crawl
模板文件中TableEnum
的导入问题。修改文档中
kafka
推送示例typo
问题。
Code optimizations¶
优化文件下载本地的逻辑,处理当
file_url
不存在时的情况。优化
items
,typevar
等模块的type hint
,并删除无用的类型内容。设置包源的优先级。
增加测试用例。
添加
mypy
工具。
AyugeSpiderTools 3.4.1 (2023-09-07)¶
Bug fixes¶
解决
Twisted
版本更新到23.8.0
不兼容的问题。(issue 10)
Code optimizations¶
scrapy
依赖版本更新为2.10.1
。
AyugeSpiderTools 3.4.0 (2023-08-10)¶
Deprecation removals¶
无。
Deprecations¶
无。
New features¶
无。
Bug fixes¶
aiohttp
超时参数由AIOHTTP_CONFIG
中的timeout
获取改为直接从DOWNLOAD_TIMEOUT
中获取。解决在aiohttp
超时参数值大于DOWNLOAD_TIMEOUT
时,与程序整体超时设置冲突,考虑程序的整体性,而不去根据aiohttp
的超时设置来更新项目的整体设置。
Code optimizations¶
aiohttp
添加allow_redirects
配置参数 ,优化对应文档示例。更新
scrapy
依赖版本为2.10.0
。解决部分
typo
及注解问题。
AyugeSpiderTools 3.3.3 (2023-08-03)¶
Deprecation removals¶
无。
Deprecations¶
无。
New features¶
无。
Bug fixes¶
修复解析
yaml
格式数据依赖缺失的问题。(issue 9)
Code optimizations¶
本库中解决
Mysql
的Unknown column 'xx' in 'field list'
部分代码变动,比如不再根据item
字段是crawl_time
类型格式来给其默认字段格式DATE
,因为用户可能只是存储字段是这个名称,意义并不同,或者它存的是个时间戳等情况。这样需要考虑的问题太复杂了,且具有隐患,不如优先解决字段缺失问题,后续按需再手动调整表字段类型。
AyugeSpiderTools 3.3.2 (2023-07-26)¶
Deprecation removals¶
无。
Deprecations¶
无。
New features¶
增加贝塞尔曲线生成轨迹的示例方法。
Bug fixes¶
无。
Code optimizations¶
将项目中有关文件的操作统一改为
pathlib
的方式。根据
consul
获取配置的方式添加缓存处理,不用每次运行都多次调用同样参数来获取配置。减少请求次数,提高运行效率。更新
README.md
内容,增加对应英文版本。
AyugeSpiderTools 3.3.1 (2023-06-29)¶
Deprecation removals¶
无。
Deprecations¶
无。
New features¶
无。
Bug fixes¶
无。
Code optimizations¶
优化
item
使用体验,完善功能及对应文档内容,具体请查看 readthedocsitem
部分。
AyugeSpiderTools 3.3.0 (2023-06-21)¶
Deprecation removals¶
优化了
Item
体验,升级为AyuItem
,使用更方便,但注意与旧版本写法并不兼容:删除了
MysqlDataItem
实现。删除了
MongoDataItem
实现。增加了
AyuItem
参数以方便开发和简化pipelines
结构,新示例请查看DemoSpider
项目或readthedocs
文档对应内容。
Deprecations¶
无。
New features¶
添加文件下载的示例,具体内容及示例请查看 readthedocs 上对应内容,具体案例请查看 DemoSpider 中的
demo_file
项目。
Bug fixes¶
无。
Code optimizations¶
升级依赖库中
numpy
和loguru
版本,避免其漏洞警告提示。更新对应的模板生成示例,简化一些不常用的配置即注释等。
AyugeSpiderTools 3.2.0 (2023-06-07)¶
Deprecation removals¶
去除数据表前缀和集合前缀的鸡肋功能:
删除了
MYSQL_TABLE_PREFIX
参数。删除了
MONGODB_COLLECTION_PREFIX
参数。
删除其它的鸡肋功能:
移除
runjs
方便运行js
方法的鸡肋封装。移除
rpa
管理自动化程序的方法。
删除了使用
requests
作为scrapy
请求库的功能,推荐使用本库中aiohttp
的方式。
Deprecations¶
无。
New features¶
添加
kafka
推送的示例,具体内容及示例请查看 readthedocs 上对应内容,具体案例请查看 DemoSpider 项目。
Bug fixes¶
无。
Code optimizations¶
增加
RabbitMQ
中heartbeat
和socket_timeout
参数可自定义的功能。整理依赖文件。
AyugeSpiderTools 3.1.0 (2023-05-30)¶
Deprecation removals¶
无。
Deprecations¶
无。
New features¶
添加
mq
推送的示例,具体内容及示例请查看 readthedocs 上对应内容,具体案例请查看 DemoSpider 项目。
Bug fixes¶
无。
Code optimizations¶
修复部分
typo
问题。
AyugeSpiderTools 3.0.1 (2023-05-17)¶
这是一个 major
版本更新,含有 bug
修复、代码优化等。
Deprecation removals¶
删除
ayugespidertools
的cli
名称 -> 改为ayuge
来管理。
Deprecations¶
无。
New features¶
修改
item
实现方式,不再通过将字段都存入alldata
中即可实现动态设置字段的功能,使用更清晰,且能更方便地使用ItemLoaders
的功能,具体内容及示例请查看 readthedocs 上对应内容,具体案例请查看 DemoSpider 项目。
Bug fixes¶
修复不会创建表注释的问题。
Code optimizations¶
修改
dict_keys_to_lower
和dict_keys_to_upper
的将字典 key 转为大写或小写的功能优化为嵌套字典中所有 key 都转为大写或小写。将模板中
settings.py
中的配置读取放入库中update_settings
实现,简化settings.py
文件内容。优化
Makefile
功能,简化清理__pycache__
文件夹的功能。修改部分
typo
问题。更新
readthedocs
内容,更新测试文件。
AyugeSpiderTools 2.1.0 (2023-05-09)¶
这是一个主要更改了 scrapy
依赖库为 2.9.0
版本,含有 bug
修复。
Deprecation removals¶
tox
去除windows
平台的测试场景。
Deprecations¶
下一大版本将删除
ayugespidertools
的cli
名称 -> 改为ayuge
来管理。
New features¶
本库依赖库
scrapy
版本升级为2.9.0
。
Bug fixes¶
修复使用
ayuge
及ayuge -h
命令时,未显示当前库版本的问题。
Code optimizations¶
无。
AyugeSpiderTools 2.0.3 (2023-05-06)¶
此版本为微小变动。
Deprecation removals¶
无
Deprecations¶
下一大版本将删除
ayugespidertools
的cli
名称 -> 改为ayuge
来管理。
New features¶
添加
mongodb
的asyncio
的示例。
Bug fixes¶
无
Code optimizations¶
readthedocs
的markdown
解析由recommonmark
改为myst-parser
,以支持更多的markdown
语法。
AyugeSpiderTools 2.0.1 (2023-04-27)¶
此版本为大版本更新,修改了项目结构以统一本库及与 scrapy
结合的代码风格,也有一些功能完善等。最新功能示例请在 DemoSpider 或 readthedocs 中查看。
Deprecation removals¶
一些
api
变动:
更改前 | 更改后 | 备注 |
---|---|---|
from ayugespidertools.AyugeSpider import AyuSpider | from ayugespidertools.spiders import AyuSpider | |
from ayugespidertools.AyuRequest import AioFormRequest | from ayugespidertools.request import AiohttpFormRequest | |
from ayugespidertools.AyuRequest import AiohttpRequest | from ayugespidertools.request import AiohttpRequest | |
from ayugespidertools.common.Utils import * | from ayugespidertools.common.utils import * | |
from ayugespidertools.Items import * | from ayugespidertools.items import * | |
from |
from |
|
from ayugespidertools.AyugeCrawlSpider import AyuCrawlSpider | from ayugespidertools.spiders import AyuCrawlSpider | |
ayugespidertools.Pipelines | ayugespidertools.pipelines | pipelines |
ayugespidertools.Middlewares | ayugespidertools.middlewares | middlweares |
一些参数配置变动:
更改前 | 更改后 | 备注 |
---|---|---|
PROXY_URL | proxy | 代理 proxy 参数 |
PROXY_INDEX | index | 代理配置等 |
注:所有配置的 key
都统一改为小写
一些使用方法更改:
使用
AiohttpRequest
构造请求时,由之前的meta
中的aiohttp_args
配置参数,改为由args
的新增参数取代,其参数类型同样为dict
,也可以为AiohttpRequestArgs
类型,更容易输入。
Deprecations¶
下一大版本将删除
ayugespidertools
的cli
名称 -> 改为ayuge
来管理。
New features¶
丰富
aiohttp
请求场景,增加重试,代理,ssl
等功能。
Bug fixes¶
无
Code optimizations¶
更新测试用例。
AyugeSpiderTools 1.1.9 (2023-04-20)¶
这是一个维护版本,具有次要功能、错误修复和清理。
Deprecation removals¶
无
Deprecations¶
无
New features¶
增加
ayuge startproject
命令支持project_dir
参数。# 这将在 project dir 目录下创建一个 Scrapy 项目。如果未指定 project dir,则 project dir 将与 myproject 相同。 ayuge startproject myproject [project_dir]
Bug fixes¶
修复模板中
settings
的CONSUL
配置信息没有更新为v1.1.6
版本推荐的使用方法的问题。(releases ayugespidertools-1.1.6)修复在
startproject
创建项目时生成的run.sh
中的路径信息错误问题。
Code optimizations¶
添加测试用例。
以后的版本发布说明都会在 ayugespidertools readthedocs 上展示。