如何设置Scrapy shell默认用户代理

2wnc66cl  于 2022-11-23  发布在  Shell
关注(0)|答案(2)|浏览(156)

我在settings.py中设置了默认的user-agent,但每次使用scrapy shell时,我仍然不得不添加-s选项和相应的值来设置user_agent。
我知道我可以使用alias scrapys="scrapy shell -s USER_AGENT='xxxxx'"这样的命令来实现它,但是有没有更好的方法来实现它呢?

vzgqcmou

vzgqcmou1#

溶液1

settings.py中设置USER_AGENT应该可以满足您的需要。如果您对此有问题,请提供更多信息(如使用tree命令打印您的项目结构)。
要使settings.pyscrapy shell ...命令读取,请确保
1.您正在项目根目录中运行该命令,在该目录中可以看到一个scrapy.cfg文件。

  1. settings.py模块路径在scrapy.cfg中定义。
[settings]
default = project_name.settings

project_name.settingssettings.py的模块路径。

溶液2

使用蜘蛛类属性Spider.custom_settings

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

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

此蜘蛛特定设置dict .custom_settings覆盖全局值settings.py

参考

tcomlyy6

tcomlyy62#

除了Simba的解决方案1之外......我实际上在settings.py中添加了一个不同用户代理的列表。

# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = random.choice(USERAGENTS)

这样你就可以在每次打开scrapy shell的时候轮换用户代理了。只要确保列表在settings.py中的这行代码 * 之前 * 定义了就行了。也不要忘记在顶部附近写上import random
快乐的刮擦:)

相关问题