Ich realisiere, dass es wahrscheinlich eine sehr spezifische Frage ist, aber ich kämpfe, um einige Teile des Textes loszuwerden, die ich den folgenden Code benutze. Ich brauche einen einfachen Artikeltext, den ich finde, indem ich "p" -Tags unter "Klasse" finde: "mol-para-with-font". Irgendwie bekomme ich viele andere Sachen wie Autoren-Byline, Datumsstempel und vor allem Text von Anzeigen auf der Seite. Wenn ich html untersuche, kann ich nicht sehen, dass sie dieselbe "Klasse" enthalten: "mol-para-with-font", also bin ich verwirrt (oder ich habe es schon zu lange angeguckt ...). Ich weiß, dass es hier viele HTML-Gurus gibt, also werde ich für deine Hilfe dankbar sein.Beautifulsoup: schließen Sie unerwünschte Teile aus
Mein Code:
import requests
import translitcodec
import codecs
def get_text(url):
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
# delete unwanted tags:
for s in soup(['figure', 'script', 'style', 'table']):
s.decompose()
article_soup = [s.get_text(separator="\n", strip=True) for s in soup.find_all(['p', {'class':'mol-para-with-font'}])]
article = '\n'.join(article_soup)
text = codecs.encode(article, 'translit/one').encode('ascii', 'replace') #replace traslit with ascii
text = u"{}".format(text) #encode to unicode
print text
url = 'http://www.dailymail.co.uk/femail/article-4703718/How-Alexander-McQueen-Kate-s-royal-tours.html'
get_text(url)
Vielen Dank. Ich kann jetzt sehen, dass ich mit zu vielen Klammern usw. davongetragen wurde ... :) – aviss