我正在做一个需要我扫描大量 HTML 文件 (8000+) 的项目。其中一些文件已损坏,但这是文件来源的必然结果,无法修复。
我选择使用 BeautifulSoup4 来查找和提取数据。代码如下:
from bs4 import BeautifulSoup
data = open('data\file.html', encoding='utf-8')
soup = BeautifulSoup(data)
tag = soup.find('strong', text="Heading:")
split_tag = str(tag.next_sibling.next_element.next_element).split(", ")
它的作用是打开一个文件,搜索包含文本“标题:”的强标签。然后它用逗号分割这个标签的内容。
但是,如果源文件损坏,则它没有包含文本“标题:”的强标签。因此,在 split_tag 处引发 AttributeError,因为它返回“None”,因此没有任何 next_sibling。
我尝试使用以下方法解决此问题:
try:
split_tag = str(tag.next_sibling.next_element.next_element).split(", ")
except AttributeError:
pass
else:
split_tag = str(tag.next_sibling.next_element.next_element).split(", ")
这没有用。我也尝试将其表达为一个函数,但没有运气。
所以我转向你。如果有任何内容,我想要做的是用逗号分割内容。如果没有,脚本应该只是通过。
我非常感谢任何帮助!