2017-09-09 7 views
0

私は美しいスープを使ってウィキペディアのウェブページをスクラップしています。 Webページにはいくつかのテーブルがあり、特定のテーブルにアクセスしようとしています。テーブルのクラス名は 'wikitable'ですが、同じクラス名の他のテーブルはほとんどありません。以下のコードを使用すると、Webページの最初の表が表示されます。しかし、私は2番目のテーブルが必要です。Webを使ってPythonで美味しいスープを使って特定のテーブルを見つけよう

my_table = str(soup.find("table","wikitable")) 

私もキャプションを使用しようとしましたが、機能しませんでした。

soup.find("caption", text="Demographics of student body").find_parent("table") 

私はエラー「はAttributeError: 『NoneType』オブジェクトが属性 『find_parent』を持っていない」だ。ここ

は、HTMLコードは、私がアクセスしようとしているテーブルのように見えるものです。

<table style="text-align:center; float:left; font-size:85%; margin-right:2em;" class="wikitable"> 
<caption><i>Demographics of student body</i><sup id="cite_ref-Head_count_124-0" class="reference"><a href="#cite_note-Head_count-124">[124]</a></sup><sup id="cite_ref-125" class="reference"><a href="#cite_note-125">[125]</a></sup><sup id="cite_ref-126" class="reference"><a href="#cite_note-126">[126]</a></sup></caption> 

私は任意の指針を感謝します。私はfind方法が唯一の第一試合を返すPythonの3

おかげ

答えて

1

を使用しています、あなたはfind_allを使用し、第2項目を選択する必要があります。

my_table = soup.select('table.wikitable')[1] 

あなたが探している文字列は「I」タグ内の「キャプション」に属しているためAttributeError例外が発生したので、find戻りNone

my_table = soup.find_all("table", class_="wikitable")[1] 

あなたはCSSセレクタを希望する場合。あなたが '私'を選択すると、それを動作させることができます。

my_table = soup.find("i", string="Demographics of student body").find_parent("table") 
+0

ありがとうございます。私は[n]を使ってテーブルにアクセスできることに気付きませんでした。 – rverma

関連する問題