6
html文書から特定の情報を抽出したい。例えば。私は「発行日:」日などの情報を抽出したいPythonとBeautifulSoupを使ってHTMLからテーブルの内容を抽出する
<table class="details">
<tr>
<th>Advisory:</th>
<td>RHBA-2013:0947-1</td>
</tr>
<tr>
<th>Type:</th>
<td>Bug Fix Advisory</td>
</tr>
<tr>
<th>Severity:</th>
<td>N/A</td>
</tr>
<tr>
<th>Issued on:</th>
<td>2013-06-13</td>
</tr>
<tr>
<th>Last updated on:</th>
<td>2013-06-13</td>
</tr>
<tr>
<th valign="top">Affected Products:</th>
<td><a href="#Red Hat Enterprise Linux ELS (v. 4)">Red Hat Enterprise Linux ELS (v. 4)</a></td>
</tr>
</table>
:それはこのような(他のコンテンツと他のテーブル間の)テーブル が含まれています。それはBeautifulSoup4 のように簡単に行うことができますが、どういうわけか私はそれを正しく得ることはできません。 私のコードは、これまで:
from bs4 import BeautifulSoup
soup=BeautifulSoup(unicodestring_containing_the_entire_htlm_doc)
table_tag=soup.table
if table_tag['class'] == ['details']:
print table_tag.tr.th.get_text() + " " + table_tag.tr.td.get_text()
a=table_tag.next_sibling
print unicode(a)
print table_tag.contents
これが私の最初のテーブル行の内容、また、内容の一覧を取得します。 しかし、次の兄弟のことは正しく動作していない、私はちょうどそれを間違って使用していると思います。 もちろん内容をパーズできるだけですが、美しいスープ は、私たちが正確にこれをやってしまうのを防ぐために設計されています(自分でパースを開始すると、 は全体の文書をよく解析します...)。もし誰かがこれを成し遂げる方法について私に啓発できるならば、私は がgratefullになります。 BeautifulSoupより良い方法があれば、私は について聞いてみたいと思います。