我发现与BeautifulSoup一起使用时有些奇怪,找不到任何文档来支持此操作,所以我想在这里询问。
假设我们有一个这样的标签,我们已经用BS对其进行了解析:
<td>Some Table Data</td>
<td></td>
提取数据的官方记录方法是soup.string
。但是,这为第二个<td>
标签提取了NoneType
。所以我尝试了soup.text
(因为为什么不呢?),它完全按照我的意愿提取了一个空字符串。
但是,我在文档中找不到对此的任何引用,并且担心某些内容会丢失。谁能告诉我这是否可以接受,否则以后会引起问题吗?
顺便说一句,我正在从网页上抓取表格数据,并打算从该数据创建CSV,因此我实际上确实需要空字符串而不是NoneTypes。
.string
在Tag
类型对象上返回NavigableString
类型对象。另一方面,.text
获取所有子字符串,并使用给定的分隔符将其串联返回。.text的返回类型是unicode
object。
从文档中看,ANavigableString
类似于PythonUnicode
字符串,除了它还支持导航树
和搜索树中描述的某些功能。
从的文档中.string
,我们可以看到,如果html是这样的,
<td>Some Table Data</td>
<td></td>
然后,.string
第二个td将返回None
。但是.text
会返回空字符串,它是一个unicode
类型对象。
为了更方便
string
tag
用于获取此标记内的单个字符串。tag
拥有单个字符串子代,则返回值为该字符串。tag
没有孩子或有一个以上孩子,则返回值为None
tag
具有一个子标记,则返回值将递归地作为子标记的’string’属性。和 text
如果html
是这样的:
<td>some text</td>
<td></td>
<td><p>more text</p></td>
<td>even <p>more text</p></td>
.string
在四个td
将返回,
some text
None
more text
None
.text
将给出这样的结果,
some text
more text
even more text
问题内容: 最近,我一直在Golang中努力处理SQL NULL值。在尝试使用和未能成功解组JSON对象后。 使用字符串指针的解决方案似乎可以与Decode()和nil值完美配合。那么和之间有什么区别?只是零检查吗? 问题答案: SQL具有与Golang不同的空值。 如果您查看的定义,那么您将获得: 如您所见,这是一种表示来自SQL的空字符串(对应于“ NULL”)的方法。另一方面,nil 是指向
问题内容: 声明 Array 和 Dictionary的 更好方法,我都使用了: 对我来说,编码方面的速度非常快,但实际上两者在编译器和性能方面有何不同,我们应该遵循哪一个? 问题答案: 从Swift上的iOS开发者库… Swift数组的类型完整写为Array ,其中Element是允许数组存储的值的类型。您还可以将简写形式的数组类型写为[Element]。尽管 这两种形式在功能上是相同的 ,但
问题内容: 在Go语言中, 是一个字符串数组 并且我们也将其用作参数。 有什么区别? 功能定义: 我可以像下面这样调用此函数吗? 问题答案: 是一个字符串数组 从技术上讲,这是引用基础数组的切片 并且我们也将其用作参数。 有什么区别? 关于结构,真的没有。两种语法得出的数据类型相同。 该参数语法形成了可变参数的参数。它将接受零个或多个参数,并将它们作为切片引用。 关于调用,您可以使用以下语法将字符
问题内容: 之间有什么区别 和 问题答案: 仅当对象 实际上是 字符串时,才强制转换为字符串: 当对象是其他对象时,它将不起作用: 但是,您将尝试将传递给它的任何内容转换为。它使用该对象的来处理原语()和对象(): 请特别注意最后一个示例:传递给将返回字符串。
问题内容: 之间有什么区别: 和 我不相信,但是我想知道。 问题答案: 从语义上讲,它们是相同的。但是,我建议在声明数组时使用后一种语法()。以前的语法主要用于与C语法兼容。 因为总体上来说,它是Java中对象的类型,所以它更加一致,而且很清楚不要将其拆分。
问题内容: 我可以使用字符串插值或String初始值设定项将int,float,double读取为字符串。结果总是一样的。 结果是一样的。d的值为“ 2e” 我发现的唯一区别是,字符串插值()可以在双引号内使用,而String()不能在双引号内使用。 这就是全部?我在这里想念什么吗? 问题答案: 字符串插值为您提供了调用该项目的结果。 调用初始化程序并返回一个值,该值通常与从字符串插值中获得的值相