2016-09-12 4 views
0

私は美しいスープを使ってウェブサイトからデータを抽出して、HTMLを解析しようとしています。私は現在、以下のWebページからテーブルデータを取得しようとしている:私は、テーブルからデータを取得したい美しいスープにいくつかのHTMLテーブルタグがありません

link to webpage

soup = BeautifulSoup(fh, 'html.parser') 
table = soup.find_all('table') 
cols = table[0].find_all('tr') 
cells = cols[1].find_all('td')` 

私は取得しない:まず、私は自分のコンピュータ上のHTMLファイルとしてページを保存しますが、私は次のコードで解析しようとすると、(この部分は、私はすべての情報を得たことを確認し正常に動作します)結果(特に、インデックス1に要素がないと言ってクラッシュします)。それがどこから来たのだろうか?

おかげ

+0

私のために動作します、あなたは正しいHTMLファイルを解析していますか? – alecxe

+0

3行目の 'table'と' [0] 'の間にスペースがあります。一方、以前は同様の問題がありましたが、htmlが掘り下げられると美しいスープはそれを処理できないことがわかりました。私は別の 'htmlパーサー 'を試しましたが、解決策を見つけることができませんでした。 – Leustad

+0

私は正しいHTMLファイルを解析していますが、少なくともメモ帳で開いたときに正しいと思われます。 スペースについては、誤ってタイプミスでしたが、私のコードには表示されませんでした。 – aeboq

答えて

0

[OK]を、実際には、HTMLタグは目で開かれたが、TDで閉じた最初の行には、HTMLファイル内の問題でした。私はHTMLについてはあまり知らないが、tdでthを置き換えて問題を解決した。

<tr class="listeEtablenTete"> 
<th title="Rubrique IC">Rubri. IC</td> 
<th title="Alin&eacute;a">Ali.&nbsp;</td> 
<th title="Date d'autorisation">Date auto.</td> 
<th >Etat d'activit&eacute;</td> 
<th title="R&eacute;gime">R&eacute;g.</td> 
<th >Activit&eacute;</td> 
<th >Volume</td> 
<th >Unit&eacute;</td>` 

ありがとうございます!

関連する問題