2017-03-08 5 views
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を使用したいと思います。

どのような方法でも動作しますか?

+0

最初に確認するのは、質問に入力したHTMLコードが実際のデータファイルであるかどうかです。その属性はタグの外にあるので、そのHTMLははっきりと間違っています。 – Mikk

+0

@Mikk申し訳ありませんが、私の不注意、私はそのHTMLを更新しました。 –

+0

'select'コマンドがリストを返しています。リストが空の場合、つまり何も見つからなかった場合、リストの最初の項目にアクセスすることはできません。 –

答えて

0

selectコマンドがリストを返しています。リストが空の場合、つまり何も見つからなかった場合、リストの最初の項目にアクセスすることはできません。

関連する問題