首页 > 解决方案 > 如何设置scrapy shell的默认用户代理

问题描述

我在 中设置了默认的用户代理settings.py,但是-s每次使用scrapy shell.

我知道我可以使用类似的命令alias scrapys="scrapy shell -s USER_AGENT='xxxxx'"来做到这一点,但是有没有更好的方法来实现它?

标签: command-linescrapyscrapy-shell

解决方案


解决方案 1

设置应该足以满足您的需要USER_AGENTsettings.py如果您对这种方式有疑问,请提供更多信息(例如使用tree命令打印您的项目结构。)。

settings.py通过scrapy shell ...命令读取,请确保

  1. 您正在项目根目录中运行该命令,您可以在其中看到一个scrapy.cfg文件。

  2. settings.py模块路径定义在scrapy.cfg.

    [settings]
    default = project_name.settings
    

    project_name.settings是 的模块路径settings.py

解决方案 2

使用蜘蛛类属性Spider.custom_settings

class MySpider(scrapy.Spider):
    name = 'myspider'

    custom_settings = {
        'USER_AGENT': 'some value',
    }

这个蜘蛛特定的设置 dict.custom_settings否决了全局settings.py.

参考


推荐阅读