Wie kann ich extrahieren nur text in scrapy-Selektor in python
Habe ich diesen code
site = hxs.select("//h1[@class='state']")
log.msg(str(site[0].extract()),level=log.ERROR)
Den Ausgang
[scrapy] ERROR: <h1 class="state"><strong>
1</strong>
<span> job containing <strong>php</strong> in <strong>region</strong> paying <strong>$30-40k per year</strong></span>
</h1>
Ist es möglich, nur den text ohne html-tags
InformationsquelleAutor der Frage user825904 | 2012-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
in deinem obigen xpath-Auswahl von
h1
tag, das hatclass
Attributstate
so, dass ist der Grund, warum es die Auswahl alles, was kommt in
h1 element
wenn Sie nur wollen, um den text auszuwählen, der
h1
tag alles, was Sie tun müssen, istwenn Sie möchten, um den text auszuwählen, der
h1
- tag sowie seine Kinder-tags, die Sie verwenden müssen,also der Unterschied ist
/text()
für bestimmte tag-text und//text()
für text, von bestimmten Tags sowie seine Kinder tagsunten genannten code funktioniert für Sie
InformationsquelleAutor der Antwort akhter wahab
Können Sie BeautifulSoup
get_text()
Funktion.InformationsquelleAutor der Antwort Aminah Nuraini
Habe ich noch nicht einen scrapy-Instanz läuft, so konnte ich nicht testen, aber könnten Sie versuchen, zu verwenden
text()
in Ihrem Ausdruck suchen.Beispiel:
(habe es von der
tutorial
)InformationsquelleAutor der Antwort E.Z.
Können Sie BeautifulSoup , strip html tags, hier ist ein Beispiel:
Können Sie dann entfernen Sie die zusätzlichen Leerzeichen, neue Zeilen usw..
wenn Sie nicht möchten, dass der Einsatz zusätzlicher Module, können Sie versuchen, einfache regex:
InformationsquelleAutor der Antwort pm007
Können Sie
html2text
InformationsquelleAutor der Antwort Aminah Nuraini