如何设置 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.py
被 scrapy shell ...
命令读取,请确保
你是运行项目根目录下的命令,在那里你可以看到一个scrapy.cfg
文件
settings.py
模块路径定义在scrapy.cfg
.
[settings]
default = project_name.settings
project_name.settings
是 settings.py
.
的模块路径
解决方案 2
使用蜘蛛class属性Spider.custom_settings
。
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'USER_AGENT': 'some value',
}
此蜘蛛特定设置字典 .custom_settings
否决了全局值 settings.py
。
参考
我在settings.py
中设置了默认的user-agent,但我还是不得不麻烦地添加-s
选项和相应的值来设置user_agent我使用 scrapy shell
.
我知道我可以使用像alias scrapys="scrapy shell -s USER_AGENT='xxxxx'"
这样的命令来做到这一点,但是有没有更好的方法来实现它?
解决方案 1
在 settings.py
中设置 USER_AGENT
应该可以满足您的需要。如果您对这种方式有疑问,请提供更多信息(例如使用 tree
命令打印项目结构。)。
要使 settings.py
被 scrapy shell ...
命令读取,请确保
你是运行项目根目录下的命令,在那里你可以看到一个
scrapy.cfg
文件settings.py
模块路径定义在scrapy.cfg
.[settings] default = project_name.settings
的模块路径project_name.settings
是settings.py
.
解决方案 2
使用蜘蛛class属性Spider.custom_settings
。
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'USER_AGENT': 'some value',
}
此蜘蛛特定设置字典 .custom_settings
否决了全局值 settings.py
。