多数の 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(", ")
それが行うことは、ファイルを開き、テキスト「Heading:」を含む強力なタグを検索することです。次に、このタグの内容をカンマで分割します。
ただし、ソース ファイルが破損している場合は、"Heading:" というテキストを含む強力なタグがありません。したがって、「None」を返し、next_sibling がないため、split_tag で AttributeError が発生します。
次の方法を使用してこれを修正しようとしました。
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(", ")
これはうまくいきませんでした。これも関数として表現しようとしましたが、うまくいきませんでした。
だから私はあなたに目を向けます。私がやりたいのは、コンテンツがある場合はコンマでコンテンツを分割することです。そうでない場合、スクリプトはパスする必要があります。
私はどんな援助にもとても感謝しています!