<table>
多くの sを含む html コードがあります。
2 番目のテーブルの情報を取得しようとしています。を使用せずにこれを行う方法はありsoup.findAll('table')
ますか?
を使用するsoup.findAll('table')
と、エラーが発生します。
ValueError: too many values to unpack
一部のコードまたはすべてのテーブルを通過する必要のない別の方法で n 番目のタグを取得する方法はありますか? または、テーブルにタイトルを追加できるかどうかを確認する必要がありますか? (のように<table title="things">
)
<h4>title</h4>
それが役立つ場合は、各テーブルの上にヘッダー ( ) もあります。
ありがとう。
編集
質問をして思ったことは以下のとおりです。
オブジェクトを 2 つの値にアンパックしていましたが、さらに多くの値がありました。これでリストの最初の 2 つが得られるだけだと思っていましたが、もちろん、上記のエラーが表示され続けました。私は戻り値がリストであることを知らず、それが特別なオブジェクトか何かであると考え、コードを友人のコードに基づいていました。
このエラーは、ページにテーブルが多すぎてすべてを処理できないことを意味していると考えていたので、使用していた方法を使用せずにそれを行う方法を求めていました. 私はおそらく物事を仮定するのをやめるべきだった.
これで、リストが返されることがわかりました。これを for ループで使用したり、 で値を取得したりできますsoup.findAll('table')[someNumber]
。開梱とは何か、その使い方も学びました。助けてくれたみんなに感謝します。
私の質問は、私が質問したときよりも意味をなさないことがわかったので、私が考えていたことをここにメモしておくことにしました.
編集2:
この質問は今ではかなり古いものですが、自分が何をしているのかがはっきりしていなかったことが今でもわかります。
それが誰かに役立つ場合、私はfindAll(...)
結果を解凍しようとしていましたが、その量はわかりませんでした。
useless_table, table_i_want, another_useless_table = soup.findAll("table");
ページには、私が推測したテーブルの量が常にあるとは限らず、タプル内のすべての値をアンパックする必要があるため、次のメッセージを受け取りましたValueError
。
ValueError: too many values to unpack
そこで、使用されたテーブルの数に関するエラーに遭遇することなく、返されたタプルの 2 番目 (またはいずれかのインデックス) のテーブルを取得する方法を探していました。