关于 scrapy 的 allowed_domains 失效问题

2017-08-25 09:57:40 +08:00
 akmonde

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 ,然后往里面填充一些不必要的配置。 感觉这样很麻烦,不知道我是否走错弯路了,还请大佬们指点一下~ 非常感激!!!

3175 次点击
所在节点    Python
3 条回复
Yc1992
2017-08-25 10:11:35 +08:00
看文档,你这个填 None 就是不启用啊,貌似类的导入位置也不对
akmonde
2017-08-25 10:25:09 +08:00
@Yc1992
SPIDER_MIDDLEWARES = 那行写在了 setting 里面,我这儿没有引入 middlewares 是没有生效的,不知道 allowed_domains 需要在啥时候生效,我看别人的好像也没提要加 middlewares。
akmonde
2017-08-26 10:04:54 +08:00
真的没有大佬能解答一下? so 尴尬。。我后来以为是版本原因,升级了 scrapy 还是这样,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/385628

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX