Scrapy Python configurer l'Agent Utilisateur

j'ai essayé de contourner 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 quand j'exécute le crawler contre ma propre toile, je remarque que l'Araignée n'a pas ramassé mon agent d'utilisateur personnalisé, mais celui par défaut " Scrapy/0.18.2 (+http://scrapy.org)". Quelqu'un peut-il expliquer ce que j'ai fait de mal.

Remarque:

(1). Ça marche quand j'ai essayé d'outrepasser user agent à l'échelle mondiale:

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

(2). Quand je supprime la ligne "default = myproject.définir" à partir du fichier de configuration, et lancer scrapy crawl myproject.com " impossible de trouver spider..", donc je pense que le paramètre par défaut ne devrait pas être supprimé dans ce cas.

Merci beaucoup pour l'aide à l'avance.

21
demandé sur igaurav 2013-09-20 19:52:36

3 réponses

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

29
répondu paul trmbrth 2016-05-06 08:42:02

juste au cas où quelqu'un atterrirait ici qui contrôlerait manuellement le scrapy crawl. c'est à dire que vous ne utilisez le processus de rampement raclé à partir de la coquille...

$ scrapy crawl myproject

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

process = CrawlerProcess()

ou

process = CrawlerRunner()

alors l'agent utilisateur, avec d'autres paramètres, peut être passé au crawler dans un dictionnaire de variables de configuration.

Comme ceci...

    process = CrawlerProcess(
            {
                'USER_AGENT': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
            }
    )
1
répondu Bletch 2017-07-31 15:43:52

j'ai eu le même problème. Essayez de lancer votre araignée comme super-utilisateur. J'exécutais l'Araignée directement avec la commande "scrapy runspider", quand j'ai essayé de l'exécuter avec "sudo scrapy runspider" ça a marché.

-8
répondu Jéter Silveira 2015-05-05 13:30:55