Ich möchte all den sichtbaren Text haben, von einer Website, nachdem die HTML gerendert wird. Ich arbeite in Python mit Scrapy Framework. Mit xpath('//body//text()')
Ich bin in der Lage, es zu bekommen, aber mit den HTML-Tags, und ich möchte nur den Text. Irgendeine Lösung dafür? Vielen Dank !Wie kann ich die ganzen Klartext von einer Website mit Scrapy?
9
A
Antwort
19
Die einfachste Option extract
//body//text()
und join
alles gefunden wäre.
Eine weitere Option ist nltk
zu verwenden 's clean_html()
:
>>> import nltk
>>> html = """
... <div class="post-text" itemprop="description">
...
... <p>I would like to have all the text visible from a website, after the HTML is rendered. I'm working in Python with Scrapy framework.
... With <code>xpath('//body//text()')</code> I'm able to get it, but with the HTML tags, and I only want the text. Any solution for this? Thanks !</p>
...
... </div>"""
>>> nltk.clean_html(html)
"I would like to have all the text visible from a website, after the HTML is rendered. I'm working in Python with Scrapy framework.\nWith xpath('//body//text()') I'm able to get it, but with the HTML tags, and I only want the text. Any solution for this? Thanks !"
Eine weitere Option ist das BeautifulSoup
' s get_text()
:
get_text()
If you only want the text part of a document or tag, you can use the
get_text()
method. It returns all the text in a document or beneath a tag, as a single Unicode string.
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> print soup.get_text().strip()
I would like to have all the text visible from a website, after the HTML is rendered. I'm working in Python with Scrapy framework.
With xpath('//body//text()') I'm able to get it, but with the HTML tags, and I only want the text. Any solution for this? Thanks !
Eine weitere Option ist lxml.html
‚s text_content()
zu verwenden :
.text_content()
Returns the text content of the element, including the text content of its children, with no markup.
>>> import lxml.html
>>> tree = lxml.html.fromstring(html)
>>> print tree.text_content().strip()
I would like to have all the text visible from a website, after the HTML is rendered. I'm working in Python with Scrapy framework.
With xpath('//body//text()') I'm able to get it, but with the HTML tags, and I only want the text. Any solution for this? Thanks !
2
Verwandte Themen
- 1. Scrap Website mit scrapy
- 2. Abrufen einer ganzen Website mit Google Cache?
- 3. Instruct Scrapy den Inhalt Länge einer Website
- 4. Wie benutze ich scrapy-jsonrpc mit Scrapy
- 5. Scrapy - Crawl ganze Website
- 6. Incremental crawl eine Website mit Scrapy
- 7. Scrapy Shell, die leeres Array mit Steam-Website zurückgibt?
- 8. Wie bekomme ich Klartext von tx_news?
- 9. Scrapy kann nicht crawlen link - Kommentar von vnexpress Website
- 10. Wie kann ich die Einstellungen einer Website in IIS7 duplizieren?
- 11. Wie kann ich eine Ruby-Website mit einer Datenbank sichern?
- 12. Wie kann ich die Blogpost-URL einer Jekyll-Website ändern?
- 13. Wie kann ich einen Screenshot einer Website mit .NET machen?
- 14. Wie kann ich meine Website mit ie6
- 15. Wie kann ich über Racket mit einer Website interagieren?
- 16. Wie kann ich mich mit Python auf einer Website anmelden?
- 17. Wie kann ich OCR auf einer Website mit PHP implementieren?
- 18. Wie kann ich die Website blockieren?
- 19. Wie bekomme ich die Scrapy-Fehler-URLs?
- 20. Wie kann ich mich mit Python auf einer Website anmelden?
- 21. Daten von einer Tabelle mit scrapy abkratzen
- 22. Wie kann ich mit Perl einen ganzen Prozessbaum töten?
- 23. Wie durchläufe ich die Ziffern einer ganzen Zahl?
- 24. Wie erhalten Sie alle Seiten und Dateien mit dem Status einer Website mit Scrapy?
- 25. Wie kann ich Bilder aus HTML Scrapy mit XPath filtern?
- 26. Wie bekomme ich favicon.ico von einer Website mit Java?
- 27. Wie kann ich die Beispiele von Twitter Bootstrap-Website
- 28. Wie ändert man die Zeichencodierung einer ganzen Website in UTF-8?
- 29. Wie kann ich wget verwenden, um Dateien mit scrapy
- 30. Kann Klartext nicht mit Passwort verschlüsseln
ich meine Frage gelöscht haben .. Ich habe den Code unten html = sel.select ("// Körper // text()") Baum = lxml.html.fromstring (html) item [ 'description'] = verwendet tree.text_content(). strip() Aber ich bekomme die \t is_full_html = _looks_like_full_html_unicode (html) \t exceptions.TypeError: erwartete Zeichenfolge oder Puffer ..erro. Was schief gelaufen ist – Backtrack
'nltk' hat am besten für mich funktioniert – user4421975
Genau wie ein Update verwarf' nltk' ihre 'clean_html' Methode und stattdessen: ' NotImplementedError: Um HTML Markup zu entfernen, benutze BeautifulSoup's get_text() Funktion ' – TheNastyOne