.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
也可以支持各种关键字参数来更改其行为方式(separator
、strip
、types
)。如果您需要对结果进行更多控制,则需要函数形式。
【讨论】:
以上是关于.text 和 .get_text() 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
BeatifulSoup4 get_text 仍然有 javascript
beautifulsoup .get_text() 对我的 HTML 解析不够具体
来自 find_all 的 BeautifulSoup get_text