从网页中提取数据
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:]]*$//'
我有大约 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:]]*$//'