1回答

0收藏

Scrapy 扩展库:AyugeSpiderTools 工具 — 解放你的双手

信息分享 信息分享 5869 人阅读 | 1 人回复 | 2023-02-01

本帖最后由 ayuge 于 2023-2-16 17:29 编辑

推荐一个我开发的 scrapy 扩展库,可使爬虫开发只需关注反爬破解和 spider 脚本中规则解析上,解放你劳累的双手,github 地址为:https://github.com/shengchenyang/AyugeSpiderTools 。若大家想添加自定义功能或修改部分功能实现,可以 clone 源码修改后自行 build


这里我简单介绍下此库的功能及开发它的原因:


在使用 Python Scrapy 框架开发爬虫时,免不了会重复的修改和编写 settings.py,middlewares.py,pipelines.py,item.py 和一些通用方法或脚本,但其实各个项目中的这些文件内容大致相同,那为何不把他们统一整理在一起呢。虽说可以使用 scrapy 的模板功能,但是还是无法适配所有的开发场景,它只适用于锦上添花。


刚开始我也只是想把它用来适配 Mysql 存储的场景,可以自动创建相关数据库,数据表,字段注释,自动添加新添加的字段,和自动修复常见(字段编码,Data too long,存储字段不存在等等)的存储问题。后来不断优化和添加各种场景,使得爬虫开发几乎只用在意 spider 脚本的解析规则和 VIT 下的 .conf 配置即可,脱离无意义的重复操作。

至于此库做了哪些功能,只要你熟悉 python 语法和 scrapy 库,再结合 [DemoSpider](https://github.com/shengchenyang/DemoSpider) 的应用示例,你可以很快上手。

在使用过程中若遇到各种问题,或有任何优化建议欢迎提 Issues !


字数过多,请移步 github 中查看。有任何建议欢迎评论下方讨论。


附加:

1. 此库就是 scrapy 的模板功能的增强版,但部分功能实现方式你可能并不同意和认可,但你可以把它当成一个示例修改后自行  build 成为你的专属库。

2. 为什么不用 feapder 框架?是的,我非常推荐它,其实 feapder 在 监控报警、浏览器渲染、海量数据去重等功能 等很多方面都很强,使用方便且适用性很广,写法与 scrapy 一致,框架迁移至 feapder 的成本开销不大。但是 scrapy 推广和社区发展已经太好了,比如 asyncio 语法支持和支持协程第三方库(scrapy-playwright, scrapy-autoextractscrapy-zyte-api 等),众多的 scrapy 扩展库(不用我再举例了吧)等等。框架不重要,在你解决了反爬后,其它对你的影响也就比较轻微了。

3.此库的具体文档我将放在我的博客中,文档地址http://www.ayuge.top/mkdocs-material/ayuge/,文档还在更新中,但示例基本都已在 DemoSpider 了。

分享到:
回复

使用道具 举报

回答|共 1 个

ayuge

发表于 2023-2-16 17:13:04 | 显示全部楼层

考虑到项目的工程化管理,此库的文档以后将在 readthedocs 的 https://ayugespidertools.readthedocs.io/en/latest/ 中更新。
回复

使用道具 举报