BeautifulSoup を使用して HTML を解析する場合、.find や .select_one などの関数の結果が何もないことがよくあります。 HTML ドキュメント内に一致する要素が見つからない場合、これらの関数は None を返します。その後、属性にアクセスしたり、None 値に対して操作を実行しようとすると、None には予期される属性が不足しているため、AttributeError が発生します。
BeautifulSoup は 2 種類のクエリを提供します。
単一結果クエリの使用時に AttributeError 例外を回避するには、結果が次のいずれかであるかどうかを確認してください。属性へのアクセスを試行する前は何もありません。これは、if ステートメントまたは try/excel パターンを使用して実行できます。
たとえば、クラス 'sister' の最初の 'a' タグのテキストに安全にアクセスするには、次を使用します。
try: first_sister_link = soup.find('a', class_='sister') if first_sister_link: print(first_sister_link.text) except AttributeError: print("No 'a' tag with class 'sister' found")
BeautifulSoup で単一結果のクエリを処理するには、NoneType エラーを避けるために結果が None かどうかをチェックする必要があります。適切な保護手段を採用することで、開発者は一致する要素の欠如を適切に処理し、例外による中断なしに解析操作を続行できます。
以上がBeautifulSoup の .find 関数と .select_one 関数から何も結果が得られないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。