BeautifulSoup:将contents []作为单个字符串

AP2*_*257 19 python beautifulsoup

任何人都知道一种优雅的方式将汤对象的全部内容作为单个字符串?

在我得到的那一刻contents,这当然是一个列表,然后迭代它:

notices = soup.find("div", {"class" : "middlecontent"})
con = ""
for content in notices.contents:
    con += str(content)
print con
Run Code Online (Sandbox Code Playgroud)

谢谢!

Fáb*_*niz 28

怎么样contents = str(notices)

或者,也许contents = notices.renderContents()会隐藏div标签.

  • 在新的Beautiful Soup 4中,renderContents()现在是encode_contents() (8认同)

Fré*_*idi 5

您可以使用join()方法:

notices = soup.find("div", {"class": "middlecontent"})
contents = "".join([str(item) for item in notices.contents])
Run Code Online (Sandbox Code Playgroud)

或者,使用生成器表达式:

contents = "".join(str(item) for item in notices.contents)
Run Code Online (Sandbox Code Playgroud)

  • 在现代版本的Python中,不需要使用方括号,甚至不建议使用方括号-省略方括号可创建生成器理解,而不是列表理解,这可以更好地利用内存,并且不会将名称“ item”泄漏到局部变量范围内。 (5认同)