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.настройка "из файла конфигурации и запустите Scrapy crawl myproject.com, он говорит:" не могу найти паука..", поэтому я чувствую, что настройка по умолчанию не должна быть удалена в этом случае.

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

3 ответов


переместите строку USER_AGENT в , а не в вашей!-Файл -1-->. settings.py должно быть на том же уровне, что и items.py Если вы используете , в вашем случае это должно быть что-то вроде myproject/settings.py


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

$ scrapy crawl myproject

но insted вы используете CrawlerProcess() или CrawlerRunner()...

process = CrawlerProcess()

или

process = CrawlerRunner()

затем агент пользователя вместе с другими настройками может быть передан искателю в словаре переменных конфигурации.

такой...

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

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