首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略导出SCRAPY_SETTINGS_MODULE的刮擦外壳

忽略导出SCRAPY_SETTINGS_MODULE的刮擦外壳
EN

Stack Overflow用户
提问于 2017-09-11 18:14:53
回答 1查看 226关注 0票数 1

我已经将设置模块envvar值设置为my_module.my_submodule.my_leaf_module。内部是一些常量集,包括一个DEFAULT_REQUEST_HEADERS字典。无论如何,我设置了上面的内容,并在没有指定任何蜘蛛的情况下,针对我想要的示例URL运行scrapy。启动时没有异常或警告,但不使用我提供的设置模块。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-11 18:49:19

我不认为设置模块是在shell期间加载的。见下面的文档

https://doc.scrapy.org/en/latest/topics/shell.html

它没有提到它。不过,您可以做的是创建一个DebugSpider并在其中启动您的url并调用一个调试外壳。因此,将下面添加到您的蜘蛛代码中

代码语言:javascript
复制
class DebugSpider(scrapy.Spider):
    name = "debug"

    def __init__(self, url=None):
        if url is None:
            raise Exception("Please specify a url using -a url=....")
        self.start_urls = [url]

    def parse(self, response):
        from scrapy.shell import inspect_response
        inspect_response(response, self)

然后从终端运行

代码语言:javascript
复制
scrapy crawl debug -a url="http://tarunlalwani.com"

这也将加载您的设置模块,并发出请求,并给您一个相同的调试shell。

代码语言:javascript
复制
2017-09-12 00:16:27 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://tarunlalwani.com> (referer: None)
[s] Available Scrapy objects:
>>> [s]   scrapy     scrapy module (contains scrapy.Request, scrapy.Selector, etc)
[s]   crawler    <scrapy.crawler.Crawler object at 0x10562b748>
[s]   item       {}
[s]   request    <GET http://tarunlalwani.com>
[s]   response   <200 http://tarunlalwani.com>
[s]   settings   <scrapy.settings.Settings object at 0x106432c50>
[s] Useful shortcuts:
[s]   shelp()           Shell help (print this help)
[s]   view(response)    View response in a browser
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46161977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档