getText() vs text() vs get_text()

5
我使用bs4提取了一块HTML代码,如下所示:
<div class="a-section a-spacing-small" id="productDescription">
<!-- show up to 2 reviews by default -->
<p>Satin Smooth Universal Protective Wax Pot Collars by Satin Smooth</p>
</div>

为了提取文本,我使用了text.strip()。

output.text()

它给了我输出"TypeError: 'str' object is not callable"

当我使用output.get_text()output.getText()时,我得到了期望的文本

这三者之间有什么区别?为什么get_text()和getText()会给出相同的输出?


1
可能是Differences between .text and .get_text()的重复问题。 - Nelewout
2个回答

6

它们非常相似:

  • .get_text 是一个返回标签文本的函数,返回结果为字符串
  • .text 是调用 get_text 的属性(所以它们是完全相同的,除了你不需要使用括号)
  • .getTextget_text 的别名

我建议尽可能使用 .text,仅当需要传递自定义参数时(例如 foo.get_text(strip=True, separator='\n'))才使用 .get_text(...)


谢谢!我刚发现打印output.p.contents也会给出一个包含制表符和换行符的列表文本。 - Proteeti Prova
笔误:expect -> except - N Chauhan
@NChauhan 谢谢!随意修正明显的错误(或者如果您没有足够的声望来实际编辑,则建议修复)。 - L3viathan
1
我本想编辑的,但是编辑至少需要改变6个字符 :) - N Chauhan

1

据我所知,.text 只能将输出以字符串形式呈现,而 getText() 则使您可以对给定对象中想要的字符串应用各种自定义参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接