Подтвердить что ты не робот

Scrapy Python Настройка агента пользователя

Я попытался переопределить пользовательский агент моего crawlspider, добавив дополнительную строку в проект файл конфигурации. Вот код:

[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

Но когда я запускаю искатель на своем собственном веб-сайте, я заметил, что паук не взял мой настраиваемый пользовательский агент, но по умолчанию "Scrapy/0.18.2 (+ http://scrapy.org)". Может кто-нибудь объяснить, что я сделал неправильно.

Примечание:

(1). Он работает, когда я пытался переопределить пользовательский агент глобально:

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

(2). Когда я удаляю строку "default = myproject.setting" из файла конфигурации и запускаю scraw crawl myproject.com, он говорит "не может найти паука". Поэтому я чувствую, что в этом случае нельзя удалить значение по умолчанию.

Большое спасибо за помощь заранее.

4b9b3361

Ответ 1

Переместите строку USER_AGENT в файл settings.py, а не в файл scrapy.cfg. settings.py должен быть на том же уровне, что и items.py, если вы используете команду scrapy startproject, в вашем случае это должно быть что-то вроде myproject/settings.py

Ответ 2

На всякий случай кто-то приземляется здесь, что вручную контролирует сканирование. т.е. вы не используете процесс обхода scrapy из оболочки...

$ 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)'
            }
    )

Ответ 3

У меня была та же проблема. Попробуйте запустить ваш паук в качестве суперпользователя. Я запускал паук прямо с командой "scrapy runpider", когда я просто попробовал выполнить его с помощью "sudo scrapy runpider", в котором он работал.