Scrapy Python设置用户代理

2024-05-05 06:08:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过在项目configuration file中添加一行来覆盖crawpsider的用户代理。代码如下:

[settings]
default = myproject.settings
USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"


[deploy]
#url = http://localhost:6800/
project = myproject

但是,当我在自己的web上运行爬虫程序时,我注意到蜘蛛并没有获取我的自定义用户代理,而是默认的“Scrapy/0.18.2(+http://scrapy.org)”。 有人能解释我做错了什么吗。

注:

(一)。当我试图重写user agent globally时,它起作用:

scrapy crawl myproject.com -o output.csv -t csv -s USER_AGENT="Mozilla...."

(二)。当我从配置文件中删除“default=myproject.setting”行并运行scrapy crawl myproject.com时,它会显示“找不到spider…”,因此我觉得在这种情况下不应该删除默认设置。

非常感谢你的帮助。


Tags: csv项目用户comhttpdefault代理mozilla
3条回答

以防有人在这里降落,手动控制抓斗。i、 e.你确实没有使用外壳上的抓取过程。。。

$ scrapy crawl myproject

但是你用CrawlerProcess()CrawlerRunner()。。。

process = CrawlerProcess()

或者

process = CrawlerRunner()

然后,用户代理和其他设置可以在配置变量字典中传递给爬网程序。

像这样。。。

    process = CrawlerProcess(
            {
                'USER_AGENT': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
            }
    )

将用户代理行移到settings.py文件,而不是scrapy.cfg文件。settings.py应该与items.py处于同一级别,如果使用scrapy startproject命令,则应该类似于myproject/settings.py

我也有同样的问题。试着以超级用户的身份运行你的蜘蛛。我是直接用命令“scrapy runspider”运行蜘蛛的,当时我只是试着用“sudo scrapy runspider”执行它。

相关问题 更多 >