近来学习scrapy 框架, 遇到了不少框架内的坑, 有的解决了,有的还未解决,先记录一下.

关于 item 的导包问题

视频里, 我看到老师都是 from xxxpro.items import xxxItem, 但是我如果这样写, 语法就会报错, pychram 直接给我报错了. 我只能用 from ..Items import xxxItem 来导包 item , 这样才能正常使用.

分布式爬虫遇到的问题, 也是和导包 item 有关

在scrapy 分布式爬虫中, 也是需要导包 Item, 但是此时, 由于 spider 的父类改变了, 并且运行的命令也变了, 变成了 scrapy runspider xxx.py , 从而导致 Item 的导包 有问题. 我使用 .. 相对路径导入不行, 项目绝对路径+文件路径的绝对路径也不行, 使用视频里老师用的 from xxxpro.items import xxxItem 也不行. 不知道是不是我的 pycharm 以及 python版本和 scrapy版本与视频里 老师的版本不同导致的,总之就是想尽办法都是导包Item报错.
最终的原因: 找到了一个爬虫大佬, 终于明白了, 这是 scrapy 框架的坑, scrapy 设计的时候认为spider 不应该导入items 里的东西, 因此 scrapy 运行 spider 的时候是"复制一份"然后等着被scrapy 核心引擎调用, 所以我调用上次目录它不理我也 不奇怪, 可是这只能解释 分布式爬虫导包 item 出错的原因.
可我在 scrapy 不使用 分布式的时候, 是可以使用上次目录导包的, 因此, 这个 scrapy 框架是存在一定的问题.

连接 redis 数据库的问题

使用 scrapy 连接 redis 数据库就报错, 是在建立连接就报错, 这个问题, 还没找出来, 先放着, 等待解决.