Scrapy shell 忽略导出 SCRAPY_SETTINGS_MODULE
Scrapy shell ignoring export SCRAPY_SETTINGS_MODULE
我已将设置模块 envvar 值设置为 my_module.my_submodule.my_leaf_module。里面是一些常量集,包括 DEFAULT_REQUEST_HEADERS 字典。无论如何,我将上面的内容和 运行 scrapy shell 设置为我想要的示例 URL,没有指定任何蜘蛛。启动时没有异常或警告,但未使用我提供的设置模块。
我做错了什么?
我认为 shell 期间没有加载设置模块。请参阅下面的文档
https://doc.scrapy.org/en/latest/topics/shell.html
它没有提到它。你可以做的是创建一个 DebugSpider 并在其中启动你的 url 并调用调试 shell。所以将下面添加到您的蜘蛛代码
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)
然后从终端运行
scrapy crawl debug -a url="http://tarunlalwani.com"
这也会加载您的设置模块并发出请求并为您提供相同的调试shell
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
我已将设置模块 envvar 值设置为 my_module.my_submodule.my_leaf_module。里面是一些常量集,包括 DEFAULT_REQUEST_HEADERS 字典。无论如何,我将上面的内容和 运行 scrapy shell 设置为我想要的示例 URL,没有指定任何蜘蛛。启动时没有异常或警告,但未使用我提供的设置模块。
我做错了什么?
我认为 shell 期间没有加载设置模块。请参阅下面的文档
https://doc.scrapy.org/en/latest/topics/shell.html
它没有提到它。你可以做的是创建一个 DebugSpider 并在其中启动你的 url 并调用调试 shell。所以将下面添加到您的蜘蛛代码
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)
然后从终端运行
scrapy crawl debug -a url="http://tarunlalwani.com"
这也会加载您的设置模块并发出请求并为您提供相同的调试shell
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