web-dev-qa-db-fra.com

Scrapy Python Configurer l'agent utilisateur

J'ai essayé de remplacer l'agent utilisateur de mon crawlspider en ajoutant une ligne supplémentaire au projet fichier de configuration . Voici le code:

[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

Mais lorsque je lance le robot d'exploration sur mon propre site Web, je remarque que l'araignée n'a pas récupéré mon agent utilisateur personnalisé, mais celui par défaut "Scrapy/0.18.2 (+ http://scrapy.org )". Quelqu'un peut-il expliquer ce que j'ai mal fait? 

Remarque:

(1). Cela fonctionne lorsque j'ai essayé de remplacer le user agent globalement

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

(2). Lorsque je supprime la ligne "default = myproject.setting" du fichier de configuration et exécute scrapy crawl crawl myproject.com, le message "ne peut pas trouver l'araignée ..", ce qui me donne l'impression que le paramètre par défaut ne doit pas être supprimé.

Merci beaucoup pour l'aide à l'avance. 

24
B.Mr.W.

Déplacez votre ligne USER_AGENT dans le fichier settings.py et non dans votre fichier scrapy.cfg. settings.py devrait être au même niveau que items.py si vous utilisez la commande scrapy startproject, dans votre cas cela devrait être quelque chose comme myproject/settings.py

36
paul trmbrth

Juste au cas où quelqu'un atterrirait ici et qui contrôle manuellement le balayage. c’est-à-dire que vous utilisez non le processus d’exploration superficielle à partir du shell ...

$ scrapy crawl myproject

Mais insted vous utilisez CrawlerProcess() ou CrawlerRunner()...

process = CrawlerProcess()

ou 

process = CrawlerRunner()

l'agent utilisateur, ainsi que d'autres paramètres, peut ensuite être transmis au robot d'exploration dans un dictionnaire de variables de configuration. 

Comme ça...

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