如何设置 scrapy shell 的默认用户代理

how to set scrapy shell's default user agent

我在settings.py中设置了默认的user-agent,但我还是不得不麻烦地添加-s选项和相应的值来设置user_agent我使用 scrapy shell.

的时间

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

解决方案 1

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

要使 settings.pyscrapy shell ... 命令读取,请确保

  1. 你是运行项目根目录下的命令,在那里你可以看到一个scrapy.cfg文件

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

    [settings]
    default = project_name.settings
    

    project_name.settingssettings.py.

    的模块路径

解决方案 2

使用蜘蛛class属性Spider.custom_settings

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

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

此蜘蛛特定设置字典 .custom_settings 否决了全局值 settings.py

参考