ayuge 发表于 2023-2-1 15:39:31

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

本帖最后由 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-autoextract,scrapy-zyte-api 等),众多的 scrapy 扩展库(不用我再举例了吧)等等。框架不重要,在你解决了反爬后,其它对你的影响也就比较轻微了。3.此库的具体文档我将放在我的博客中,文档地址:http://www.ayuge.top/mkdocs-material/ayuge/,文档还在更新中,但示例基本都已在 DemoSpider 了。

ayuge 发表于 2023-2-16 17:13:04

考虑到项目的工程化管理,此库的文档以后将在 readthedocs 的 https://ayugespidertools.readthedocs.io/en/latest/ 中更新。
页: [1]
查看完整版本: Scrapy 扩展库:AyugeSpiderTools 工具 — 解放你的双手