BeautifulSoup を使用して属性値を抽出する
使用して "input" タグ内の特定の "value" 属性の値を抽出しようとする場合BeautifulSoup で、「TypeError: list indices は str ではなく integers である必要があります」というエラー メッセージが発生する場合があります。この問題は、BeautifulSoup の .find_all() メソッドの動作方法に関する誤解から生じています。
.find_all() について
.find_all() は、出現するタグをすべて検索します。指定された属性に一致し、要素のリストを返します。これは、特定の名前を持つ入力タグの属性を抽出するときに、操作によって属性値そのものではなく、そのリストのメンバーである要素が返されることを意味します。
コードの修正
エラーを修正するには、次の 2 つの方法があります。
input_tag = soup.find_all(attrs={"name": "stainfo"}) output = input_tag[0]['value']
input_tag = soup.find(attrs={"name": "stainfo"}) output = input_tag['value']
これらの変更のいずれかを実装すると、コードは次のようになります。必要な属性値を適切に抽出すると、「TypeError」例外が発生します。
以上がBeautifulSoup で属性値を抽出するときに「TypeError: list indices must be integers, not str」を回避する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。