使っています美しいスープいくつかの HTML を解析します。
各HTMLから特定のデータを取得しています(for ループを使用)そのデータを特定のリストに追加します。
問題は、HTMLの一部が異なるフォーマットを持っていることです(そして、そこには私が欲しいデータがありません)。
null
そこで、例外処理を使用してリストに値を追加しようとしました(データの順序が重要なので、これを実行する必要があります。)
たとえば、次のようなコードがあります:
soup = BeautifulSoup(links)
dlist = soup.findAll('dd', 'title')
# I'm trying to find content between <dd class='title'> and </dd>
gotdata = dlist[1]
# and what i want is the 2nd content of those
newlist.append(gotdata)
# and I add that to a newlist
一部のリンクには がないので、代わりにリストに<dd class='title'>
文字列を追加したいと思います。null
次のエラーが表示されます:
list index out of range.
私が試したのは、次のような行を追加することです。
if not dlist[1]:
newlist.append('null')
continue
しかし、うまくいきません。まだエラーが表示されます:
list index out of range.
これに対して何をすべきでしょうか? 例外処理を使用する必要がありますか? または、もっと簡単な方法はありますか?
何か提案はありますか?どんな助けでも本当に助かります!
ベストアンサー1
例外を処理するのが最善の方法です。
try:
gotdata = dlist[1]
except IndexError:
gotdata = 'null'
もちろん、 ; をチェックすることもできますlen()
がdlist
、例外を処理する方が直感的です。