1
私はHTMLとPythonが初めてです。美しいスープ4:指定を使ってhrefを指定する
私は、次のHTMLフラグメントがあります
<li data-selenium="aaa" data-isready="true" data-hotelid="1234" data-roomid="12345" class="bbb">
<a id="xxx" data-selenium="" class="yyy" target="_blank" href="/someURL/I_want_to_get">
</a>
</li>
を多くのクラスがあります。それは、タグに が含まれていBBB私はすべてのクラスBBBのhrefを取得するために、BS4の機能を選択使用しようとしています。
for res in soup.select('.bbb')
print res.select('a')[0]['href']
Iタグは属性HREF、 のみを含むが、上記のようなタグ場合、私はエラーメッセージが出た場合、その成功。
IndexError: list index out of range
次に[0]を削除しようとすると、他のエラーが発生します。
TypeError: list indices must be integers.
私は選択するのに多種の方法を試しましたが、それを得ることはできません。
findAllの代わりにSelectを使用したいと思います。
どのような方法でも動作しますか?
最初に確認するのは、質問に入力したHTMLコードが実際のデータファイルであるかどうかです。その属性はタグの外にあるので、そのHTMLははっきりと間違っています。 – Mikk
@Mikk申し訳ありませんが、私の不注意、私はそのHTMLを更新しました。 –
'select'コマンドがリストを返しています。リストが空の場合、つまり何も見つからなかった場合、リストの最初の項目にアクセスすることはできません。 –