从网页中提取数据

Extract data from a webpage

我有大约 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 这样的口音,它不会找到他们的名字)。 正确的做法是什么?

最可靠的方法是使用 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:]]*$//'