在使用BeautifulSoup时,我注意到一些奇怪的事情,并且找不到任何文档来支持这一点,所以我想在这里询问一下。
假设我们有一个像这样的标签,我们已经用BS解析过了:
<td>Some Table Data</td>
<td></td>提取数据的official documented方法是soup.string。但是,这为第二个<td>标记提取了一个NoneType。所以我尝试了soup.text (为什么不呢?)它提取了一个空字符串,这正是我想要的。
然而,我在文档中找不到任何关于这一点的引用,我担心有什么地方遗漏了。有没有人可以告诉我这是不是可以接受的,或者以后会不会有问题?
顺便说一句,我是从网页抓取表数据,并意味着从数据创建CSV,所以我确实需要空字符串而不是NoneTypes。
发布于 2017-08-15 12:06:56
如果一个标记包含多个内容,那么就不清楚.string应该引用什么,所以.string被定义为None:
示例:
<td>sometext<p>sometext</p></td>如果完成了: td.string,上面的代码将返回NoneType,因为td包含文本以及另一个p标记。但是td.text会给出:
https://stackoverflow.com/questions/25327693
复制相似问题