Comment puis-je récupérer le texte brut à partir d'un site web avec Scrapy?
Je voudrais avoir tout le texte visible à partir d'un site web, d'après le code HTML est affiché. Je travaille en Python avec Scrapy cadre.
Avec xpath('//body//text()')
je suis en mesure de l'obtenir, mais avec les balises HTML, et je veux seulement le texte. Toute solution pour cela? Merci !
OriginalL'auteur tomasyany | 2014-04-18
Vous devez vous connecter pour publier un commentaire.
L'option la plus simple serait de
extrait
//body//text()
etjoin
tout trouvé:où
sel
est unSélecteur
instance.Une autre option est d'utiliser
nltk
'sclean_html()
:Une autre option est d'utiliser
BeautifulSoup
'sget_text()
:Une autre option est d'utiliser
lxml.html
'stext_content()
:nltk
qui a le mieux fonctionné pour moiTout comme une mise à jour,
nltk
obsolète leursclean_html
méthode et, au lieu de recommander:NotImplementedError: To remove HTML markup, use BeautifulSoup's get_text() function
OriginalL'auteur
Avez-vous essayé?
OU
OriginalL'auteur
La
xpath('//body//text()')
n'est pas toujours au lecteur de louche dans les nœuds de votre dernière utilisation de la balise(dans votre cas le corps.) Si vous tapezxpath('//body/node()/text()').extract()
vous verrez les nœuds qui sont en vous html le corps. Vous pouvez essayer dexpath('//body/descendant::text()')
.OriginalL'auteur