当前位置: 首页 > 面试题库 >

如何从项目管道访问临时设置

丌官飞章
2023-03-14
问题内容

如何从项目管道访问settings.py中的scrapy设置。文档中提到可以通过扩展程序中的搜寻器访问它,但是我看不到如何在管道中访问搜寻器。


问题答案:

settings.py从内部访问Scrapy设置(如中所定义)的方法your_spider.py很简单。所有其他答案都太复杂了。原因是对Scrapy文档的维护非常差,加上许多最新的更新和更改。在“设置”文档“ 如何访问设置 ”中,或者在“设置API”中,都没有给出任何可行的示例。这是一个示例,说明如何获取当前的USER_AGENT字符串

只需将以下行添加到your_spider.py

# To get your settings from (settings.py):
from scrapy.utils.project import get_project_settings
...
class YourSpider(BaseSpider):
    ...
    def parse(self, response):
        ...
        settings = get_project_settings()
        print "Your USER_AGENT is:\n%s" % (settings.get('USER_AGENT'))
        ...

如您所见,无需使用@classmethod或重新定义from_crawler()or __init__()函数。希望这可以帮助。

PS。我仍然不确定为什么使用from scrapy.settings import Settings方式不一样,因为这将是更明显的导入选择?



 类似资料:
  • 所以,我认为管道选项会很好,我只是在模板编译时或运行时传递一个不同的参数,但我要花很长时间访问par.do转换我需要的地方。如果我使用默认运行器并在本地运行管道,它可以正常工作,但是当我切换并构建模板时,值总是。我可以用下面的代码复制它: 云中的输出是: 但在当地: 对于本地: 当我在Dataflow控制台(浏览器)中的参数字段中创建作业时,我尝试将参数传递给作业和,但仍然显示为null。 很抱歉

  • 更新日期:2020年2月20日 总结 Azure 开发运营管道生成无法从“项目”下的专用源中找到 NuGet 包。 我们的 Azure DevOps 环境 在Azure,我们有自己的公司“空间”:dev.azure.com/OurCompany 在此之下,我们有多个项目,例如,想象一下这三个项目: 绿色:包含特定类型的应用程序 蓝色:这包含不同类型的应用程序 红色:这包含我们的“通用”帮助程序代码

  • 我有一个Jenkins管道工作,它被配置为检查一个git回购和一个特定的本地分支。 两个值都为“null”

  • 我有一个在云中运行的azure管道,在那里,我基本上想运行黑鸭扫描。为了简化操作,黑鸭任务运行 maven 命令来构建依赖关系树。为了做到这一点,它会扫描我的pom.xml中的所有依赖关系。 我目前在Azure DevOps上有2个feeds。1个用于存储外部库,1个用于存储内部开发内部库。所有外部的依赖项,maven命令都能够检索,但是内部的依赖项不能。我一直得到一个401未授权的错误。 我已经

  • 我在repo的“Development”分支的更改上使用带有触发器的云构建来触发构建。作为构建的一部分,我使用gcloud builder将一些东西部署到项目A中。 现在,我想在项目B上运行相同的构建。可能是同一个分支,也可能是不同的分支(即'release-*')。最后,希望用gcloud builder将一些东西部署到项目B中。 问题是,当我在project B(在Google云控制台)上时,

  • 如何在孩子的标签和函数sayhello中访问家长的道具? (我可以访问兄弟姐妹和孩子,而无需将道具作为参数传递,但不能访问家长) \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 和(远离本例) 如果此代码引用了 如何访问家长的道具 如果将Chi