【发布时间】:2013-11-08 03:40:09
【问题描述】:
我是一个 python 新手,试图用 Beautiful Soup 刮桌子。
我想用 Ubuntu CVE 信息抓取类似于以下表格的表格,并将表格输出到 csv 文档。
<div class="pkg">
<div class="field">Package</div><div class="value">Source: <a href="http://people.canonical.com/~ubuntu-security/cve/pkg/mysql-cluster-7.0.html">mysql-cluster-7.0</a></div>
<table>
<tr><td>(Lucid Lynx):</td><td>ignored
</td></tr>
<tr><td>(Precise Pangolin):</td><td>DNE
</td></tr>
<tr><td>(Quantal Quetzal):</td><td>DNE
</td></tr>
<tr><td>(Raring Ringtail):</td><td>DNE
</td></tr>
<tr><td>(Saucy Salamander):</td><td>DNE
</td></tr>
</table>
</div>
<div class="pkg">
<div class="field">Package</div><div class="value"><a href="http://people.canonical.com/~ubuntu-security/cve/pkg/mysql-5.5.html">mysql-5.5</a></div>
<table>
<tr><td>(Lucid Lynx):</td><td>DNE
</td></tr>
<tr><td>(Precise Pangolin):</td><td>released
(5.5.32-0ubuntu0.12.04.1)
</td></tr>
<tr><td>(Quantal Quetzal):</td><td>released
(5.5.32-0ubuntu0.12.10.1)
</td></tr>
<tr><td>(Raring Ringtail):</td><td>released
(5.5.32-0ubuntu0.13.04.1)
</td></tr>
<tr><td>(Saucy Salamander):</td><td>released
(5.5.32-0ubuntu1)
</td></tr>
</table>
</div>
我希望 csv 输出采用这种格式:
- 发布,状态
- (Lucid Lynx),忽略
- (精确穿山甲),DNE
- 等等……
我可以使用table = soup.findAll("table")提取所有表格,但我不确定如何将所有表格的内容拆分为电子表格的两个不同单元格。
任何建议将不胜感激。
【问题讨论】:
-
尝试自己用 table('tr') 来跟踪行,然后用 row('td') 来定位和提取你想要的内容。然后使用 csv lib 将它们转换为 csv 格式。如果遇到任何问题,请询问
标签: python html csv web-scraping beautifulsoup