emi*_*ish 5 python web-crawler scrapy
我正在尝试使用 Scrapy shell 测试一些 XPath,但它似乎在调用我不完整的蜘蛛模块来进行抓取,这不是我想要的。有没有办法定义哪个蜘蛛scrapy与其外壳一起使用?更重要的是,为什么 Scrapy 这样做?它不应该知道蜘蛛还没有准备好使用吗?这就是我使用 shell 的原因吗?否则我会使用
scrapy crawl spider_name
Run Code Online (Sandbox Code Playgroud)
如果我想使用特定的蜘蛛。
编辑:在永远查看 Spider 文档后,我发现了以下关于 shell 中使用的蜘蛛实例的描述。
蜘蛛 - 已知处理 URL 的蜘蛛,如果当前 URL 没有找到蜘蛛,则为 BaseSpider 对象
这意味着,scrapy 已将 URL 与我的蜘蛛相关联,并使用它而不是 BaseSpider。不幸的是,我的蜘蛛还没有准备好进行测试,那么有没有办法强制它使用 BaseSpider 作为外壳呢?
Scrapy 根据allowed_domains属性自动选择蜘蛛。如果给定域有多个蜘蛛,Scrapy 将使用BaseSpider.
但是,它只是一个 python shell,你可以实例化任何你想要的蜘蛛。
>>> 从 myproject.spider.myspider 导入 MySpider >>> 蜘蛛 = MySpider() >>> spider.parse_item(响应)
编辑:作为不使用蜘蛛的解决方法,您可以设置allowed_domains = []