.text 和 .get_text() 之间的区别

Posted

技术标签:

【中文标题】.text 和 .get_text() 之间的区别【英文标题】:Differences between .text and .get_text() 【发布时间】:2016-05-31 11:55:01 【问题描述】:

BeautifulSoup中,.text.get_text()有什么区别吗?

获取元素的文本应该首选哪一个?

>>> from bs4 import BeautifulSoup
>>>
>>> html = "<div>text1 <span>text2</span><div>"
>>> soup = BeautifulSoup(html, "html.parser")
>>> div = soup.div
>>> div.text
'text1 text2'
>>> div.get_text()
'text1 text2'

【问题讨论】:

基本上你可以使用get_text()的自定义分隔符,你应该使用它,因为.text是一个私有属性,甚至没有记录。 @Selcuk 是的,我个人一直在使用get_text(),主要是因为它被明确记录在案,但我看到很多 bs4 用户直接使用.text 并且很好奇的缺点。谢谢! ​​​​​​​​​​​​​​​嗯...那div.string是什么? 【参考方案1】:

看起来像.text is just a property that calls get_text。因此,不带参数调用get_text.text 相同。但是,get_text 也可以支持各种关键字参数来更改其行为方式(separatorstriptypes)。如果您需要对结果进行更多控制,则需要函数形式。

【讨论】:

以上是关于.text 和 .get_text() 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

BeatifulSoup4 get_text 仍然有 javascript

beautifulsoup .get_text() 对我的 HTML 解析不够具体

来自 find_all 的 BeautifulSoup get_text

Beautifulsoup - get_text,单行输出

美丽的汤,get_text 但不是 <span> 文本.. 我怎样才能得到它?

将 const char* 转换为 LPCTSTR