我想创建一个脚本,从城市网站上发布的这个糟糕的HTML中抓取两个值:
558.35
和
66.0
这些是水库的细节,每周更换一次。
我不确定这样做的最佳工具是什么,grep?
感谢您的建议,想法!
<table>
<tbody>
<tr>
<td> Currently:</td>
<td> 558.35</td>
</tr>
<tr>
<td> Percent of capacity:</td>
<td> 66.0%</td>
</tr>
</tbody>
</table>
答案 0 :(得分:2)
如果您使用的是正则表达式,则可以使用sed
sed -nr 's#^[ ]*<td>.*;[ ]?([0-9]+[.][0-9]+)[%]?</td>[ ]*$#\1#p' my_html_file
一个Htmlparser如python的模块BeautifulSoup或javascript方法是一个更安全的选择
修改强>
这是一个使用javascript的片段。结果会记录到控制台并弹出一个警告框以显示结果
var values="";
for(i=1;i<document.getElementsByTagName('td').length;++i){
values+=" "+document.getElementsByTagName('td')[i].innerHTML.replace(/ |Percent of capacity:|[ %]/g,"")
}
alert(values);
console.log(values);
<table>
<tbody>
<tr>
<td> Currently:</td>
<td> 558.35</td>
</tr>
<tr>
<td> Percent of capacity:</td>
<td> 66.0%</td>
</tr>
</tbody>
</table>