Scrapy Shell - 如何更改 USER_AGENT

Posted

技术标签:

【中文标题】Scrapy Shell - 如何更改 USER_AGENT【英文标题】:Scrapy Shell - How to change USER_AGENT 【发布时间】:2014-10-15 06:48:50 【问题描述】:

我有一个功能齐全的 scrapy 脚本来从网站中提取数据。在设置过程中,目标站点根据我的 USER_AGENT 信息禁止了我。我随后添加了一个 RotateUserAgentMiddleware 来随机旋转 USER_AGENT。这很好用。

但是,现在当我尝试使用 scrapy shell 测试 xpath 和 css 请求时,我收到 403 错误。我确定这是因为 scrapy shell 的 USER_AGENT 默认为目标站点已列入黑名单的某个值。

问题:是否可以在scrapy shell 中使用与默认不同的USER_AGENT 获取URL?

fetch('http://www.test') [添加一些东西??更改 USER_AGENT]

谢谢

【问题讨论】:

Scrapy Python Set up User Agent的可能重复 不同的问题。我可以在 settings.py 中更改 USER_AGENT 没问题。我正在尝试更改scrapy shell下的设置:doc.scrapy.org/en/latest/topics/shell.html 【参考方案1】:

在scrapy shell里面,你可以在requestheader中设置User-Agent

url = 'http://www.example.com'
request = scrapy.Request(url, headers='User-Agent': 'Mybot')
fetch(request)

【讨论】:

【参考方案2】:

scrapy shell -s USER_AGENT='custom user agent' 'http://www.example.com'

【讨论】:

你知道如何在scrapy shell中添加标题吗?谢谢。 我来到这里是因为我从项目目录外部运行 shell,而我的设置文件被忽略了。切换到项目目录后,自定义USER_AGENT 设置正常工作,无需向scrapy shell 命令传递任何额外参数。

以上是关于Scrapy Shell - 如何更改 USER_AGENT的主要内容,如果未能解决你的问题,请参考以下文章

scrapy shell命令的选项简介

scrapy随机更改User-Agent方法

Scrapy shell调试返回403错误

scrapy项目入门--shell的使用!

scrapy shell 用法(慢慢更新...)

启动scrapy shell时如何解决错误?