BeautifulSoup - wie soll ich mich erhalten, den Körper Inhalt
Ich bin Parsen HTML
mit BeautifulSoup. Am Ende, ich möchte zu erhalten, die body
Inhalt, aber ohne die body
- tags. Aber BeautifulSoup fügt html
, head
, und body
- tags. Ich diese googlegrops Diskussion eine mögliche Lösung vorgeschlagen:
>>> from bs4 import BeautifulSoup as Soup
>>> soup = Soup('<p>Some paragraph</p>')
>>> soup.body.hidden = True
>>> soup.body.prettify()
u' <p>\n Some paragraph\n </p>'
Diese Lösung ist ein hack. Es sollte eine bessere und offensichtliche Weg, es zu tun.
InformationsquelleAutor Philipp Zedler | 2014-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meinst du immer alles zwischen den body-tags?
In diesem Fall können Sie verwenden :
''.join(['%s' % x for x in soup.body.findChildren()])
oder gibt es eine bessere Möglichkeit?Ich finde deine Art ziemlich gut.
Ich hatte einige Probleme mit findChildren wo einige Dinge erscheinen Redundant, da Sie verschachtelt sind, in mehreren Schichten und wurden für jeweils Schicht. Um den Inhalt aus dem Leib, wie es ist im original ohne Redundanz oder Verrücktheit, die ich verwendet
pagefilling = ''.join(['%s' % x for x in soup.body.contents])
Körper.findChildren(recursive=False); hilft Sie nicht, um verschachtelte Elemente zweimal.
InformationsquelleAutor Azwr