RT,我这边爬虫类继承的是基础 spider:
from scrapy.spiders import Spider
class DSpider(Spider):
然后也设置了:
allowed_domains=["baidu.com"]
结果发现,爬虫仍然会递归爬到其他网站上的链接,我这边肯定不是链接跳转过去的,是直接爬到其他网站了。 网上找了下原因,说我得去启用 OffsiteMiddleware,当然具体怎么设置值没找到。
class scrapy.contrib.spidermiddleware.offsite.OffsiteMiddleware
然后我看了下,我自己胡乱加了下配置:
SPIDER_MIDDLEWARES = {
'DomainSpider.middlewares.MyCustomSpiderMiddleware': 543,
'scrapy.contrib.spidermiddleware.offsite.OffsiteMiddleware': None,
}
结果报错:
exceptions.ImportError: No module named middlewares
似乎启用这个,我还得去建一个 middlewares.py ,然后往里面填充一些不必要的配置。 感觉这样很麻烦,不知道我是否走错弯路了,还请大佬们指点一下~ 非常感激!!!
1
Yc1992 2017-08-25 10:11:35 +08:00
看文档,你这个填 None 就是不启用啊,貌似类的导入位置也不对
|
2
akmonde OP @Yc1992
SPIDER_MIDDLEWARES = 那行写在了 setting 里面,我这儿没有引入 middlewares 是没有生效的,不知道 allowed_domains 需要在啥时候生效,我看别人的好像也没提要加 middlewares。 |
3
akmonde OP 真的没有大佬能解答一下? so 尴尬。。我后来以为是版本原因,升级了 scrapy 还是这样,
|