2017-04-18 11 views
0

Ich versuche, den gesamten Text aus einem Artikel mit BeautifulSoup zu extrahieren. Ich kann den ganzen Text des Artikels vom vorhergehenden und folgenden HTML trennen, aber ich kann nicht herausfinden, wie man den Text von seinem ganzen eingebetteten HTML-Code trennt. Hier ist mein Code:Extrahieren eines Artikels mit BeautifulSoup Text

from bs4 import BeautifulSoup 
import requests 
url = 'http://www.prnewswire.com/news-releases/tata-consultancy-services-reports-broad-based-growth-across-markets-marks-steady-fy17-300440934.html' 
r = requests.get(url) 
html = r.text 
soup = BeautifulSoup(html, 'lxml') 
links = soup.find_all('p', {'itemprop': 'articleBody'}) 

Verbindungen enthält alle Artikeltext, aber es ist in mehrere Segmente unterteilt.

Alle Ideen zum Trennen und Kombinieren aller Artikeltextsegmente aus dem HTML-Code, der im Artikeltext eingefügt wird, wären sehr willkommen.

+0

i siehe ' Links "als leere Liste, bist du sicher, dass es" item_prop "und nicht" itemprop "ist? – odradek

+0

Hallo, vielen Dank für den Hinweis auf meinen Tippfehler. Es sollte itemprop sein und nicht item_prop. Die richtige Links-Anweisung wäre: Links = soup.find_all ('p', {'itemprop': 'articleBody'}) –

Antwort

0

können Sie die get_text Methode verwenden, die den gesamten Text unter einem Tag zurückgibt:

links = [e.get_text() for e in soup.find_all('p', {'itemprop': 'articleBody'})] 

dann kommen sie, wie Sie wollen:

article = '\n'.join(links) 
print len(article) 

würde Ausgang

$ 6485 
+0

Vielen Dank. Das hat meine Frage vollständig beantwortet. –

Verwandte Themen