2016-04-17 1 views
0

Ich lerne gerade Web Scraping und ich stieß auf ein Problem in schönen Seifenmodul. Ich lief den folgenden Code:Tags und Element wurde gedruckt, wenn versucht wurde, nur Text mit Web-Scraping in Beatitifulsoap in Python zu bekommen

import requests, bs4 
res = requests.get('http://www.weather.gov/') 
res.raise_for_status() 
soup = bs4.BeautifulSoup(res.text, "html.parser") 
comicElem = soup.find('#topnews p') 
print (len(comicElem)) 

Und wenn ich es bin mit dem Ergebnis zeigt, sondern zeigt auch die Tags und in denen Element ist. Wie:

Result

Wie kann ich ausblenden Absatz-Tag? Gibt es einen anderen Weg? Bitte überprüfen Sie Ihre Lösung und antworten Sie.

Fakten: Ich verwende Python 3.5, Windows 7

Antwort

2

Verwenden .get_text() den inneren Text eines Elements zu erhalten:

comicElem.get_text() 

Beachten Sie, dass, wenn es mehrere Elemente, die Sie, müsste für jedes Element get_text() aufrufen:

[elm.get_text() for elm in soup.find_all('#topnews p')]