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", он работал.