重磅!Scrapy-Redis 正式发布新版本了
共 2188字,需浏览 5分钟
· 2021-06-24
今天这篇文章算是一篇非常简单的通告,主要告诉大家 Scrapy-Redis 这个时隔四年没有更新的库,终于发正式的新版本了。
有的朋友可能会问:你不是前几天就说更新了吗?是,的确是更新了,但是没有发布正式版到 PyPi 上面,仅仅发布了一个 beta 版本,0.7.1b1,大家如果不指定版本号的话,依然还会安装四年前的版本 0.6.8。
beta 版本我联系人进行了一番试用,没有什么大问题,于是决定今天发布一个正式的新版本。
大家可能最好奇的是这个版本升级都带来了什么更新呢?这里总结下。
我们把这几年新进的 PR 总结下。
创建 dupefilter 的时候支持通过 from_spider 创建
这里增加了一个 from_spider 方法,方便在其他类初始化或者复写 Dupefiler 类的时候直接调用 from_spider 实现,增加了可扩展性。
PR:https://github.com/rmax/scrapy-redis/pull/83
对 Python3 增加了 REDIS_DECODE_RESPONSES 的支持
我们知道 Python2 和 3 的 Redis 返回结果的默认编码是不同的,Python3 会变成 bytes 格式,增加这个参数,可以自动将 Redis 的结果进行 decode,算是一个小优化吧。
PR:https://github.com/rmax/scrapy-redis/pull/146
增加了 DB 的设置支持
在之前的版本中,没有把 db 这个参数暴露出来,这里增加了 DB 的配置支持。
但是现在还没有 Password 的支持,后续会加上,可以先用 REDIS_URL 配置。
PR:https://github.com/rmax/scrapy-redis/pull/166
读取 Redis 队列的时候使用 pipeline 实现
在之前的版本中,RedisSpier 读取 Redis 列表结果的时候,直接使用了一个 lpop 用来读取一个列表元素,这里增加了多个元素的读取,于是也将实现改成了 Redis 的 pipeline 实现,保证原子性。
PR:https://github.com/rmax/scrapy-redis/pull/169
start_urls 增加了优先级的支持
之前的时候 start_urls 的实现是不支持优先级配置的,这里增加一个 zset 的支持,可以用来配置 start_urls 中 URL 的优先级,方便实用。
PR:https://github.com/rmax/scrapy-redis/pull/172
增加了批量初始化 Request 的支持
当初始化请求是 Iterable 类型的时候,增加了遍历获取和初始化的功能。
PR:https://github.com/rmax/scrapy-redis/pull/176
增加了基于 Redis 的全局数据统计功能
之前的时候每个 Spider 的数据统计都是分离的,没法统一,这里借助 Redis 进行了同步。
PR:https://github.com/rmax/scrapy-redis/pull/186
这个功能是我加的,具体的原理大家可以参考这篇文章:我给 Scrapy Redis 开源库发的 PR 被合并了
以上就是 Scrapy-Redis 更新的全部内容啦,现在已经发布到 PyPi 上面,版本是 0.7.1,欢迎大家试用。
另外大家到 Scrapy-Redis 的 GitHub 仓库也能看见更新信息:
以及 Release 信息:
如果大家更新之后遇到了什么问题,请大家及时提 Issue 到 GitHub 反馈,我会及时跟进修正,谢谢。