从网页中提取数据

时间:2015-05-23 20:58:32

标签: web-scraping extraction

我有大约10000个html下载的文件。他们有一段像这样的HTML代码:

<tr>
   <td width="10%" valign="top"><p>City:</p></td>
   <td colspan="2"><p>
        London
   </p></td>
</tr>

我需要的是一种从所有文件中获取城市的方法。我正在使用linux所以我正在考虑使用一些批处理文件来处理sed,但由于某些编码问题,sed对这些文件效果不佳(有些城市有像Jérica这样的重音符号而且找不到它们的名字) 。 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

最可靠的方法是使用HTML(或XML)解析器。

但是,如果HTML总是以相同的方式格式化,例如:

<tr>
   <td width="10%" valign="top"><p>City:</p></td>
   <td colspan="2"><p>
        *******
   </p></td>
</tr>

城市名称出现在星号的位置,那么下面的单行应该有效:

cat *.html |grep -A2 '<p>City' |tail -n1 |sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'