首页 > 解决方案 > Python - 使用 BS4 从此 Html 标记中提取数据,而不是获取无

问题描述

这是我的代码:

html = '''
<td class="ClassName class" width="60%">Data I want to extract<span lang=EN- 
UK style="font-size:12pt;font-family:'arial'"></span></td>
'''


soup = BeautifulSoup(html, 'html.parser')

print(soup.select_one('td').string)

它返回无。我认为这与空的 span 标签有关。我认为它进入那个跨度标签,并返回那些内容?所以我要么想删除那个跨度标签,要么在它找到“我要提取的数据”后立即停止,或者告诉它忽略空标签

如果 'td' 中没有空标签,它实际上可以工作。

有没有一种方法可以忽略一般的空标签并退后一步?而不是忽略这个特定的跨度标签?

对不起,如果这太简单了,但我花了很多时间搜索。

标签: pythonhtmlbeautifulsoup

解决方案


使用.text属性,而不是.string

html = '''
<td class="ClassName class" width="60%">Data I want to extract<span lang=EN-
UK style="font-size:12pt;font-family:'arial'"></span></td>
'''

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')

print(soup.select_one('td').text)

输出:

我要提取的数据


推荐阅读