Linux脚本,用于将特定范围的数据从网页复制到文本文件

时间:2013-11-01 12:13:21

标签: linux range extract

我正在寻找从网页中提取一系列数据的代码。 该网页是:

http://kos.hdsat.pl/menu-20.html

我感兴趣的数据范围是Oscam.srvid数据(页面上的第一个数据列表)。 我想将此数据复制到名为Oscam.srvid

的本地文件中

另一种选择是让脚本获取包的框,然后选择页面顶部的Oscam.srvid按钮。

我不确定哪个选项最容易编写脚本但是对我来说这两种方式都可以正常工作..

1 个答案:

答案 0 :(得分:1)

您可以使用wget下载html网站,然后使用sed来提取您要使用的内容。像

这样的东西
wget http://kos.hdsat.pl/menu-20.html && sed -n '/<textarea/,${/<\/textarea/q; s/<.*>//g; p}' menu-20.html > Oscam.srvid

可以胜任。

这里发生了什么?

wget http://kos.hdsat.pl/menu-20.html下载该文件,如果成功,我们会运行sed,但会使用选项-n来抑制所有输出。现在我们查找第一次出现的“textarea”并打印到文档的末尾($;我们实际上并不打印到文档的末尾,而是稍后会有一个退出语句)。在这些行中,我们运行以下sed命令:

我们找到“&lt; \ textarea”后立即退出{p> /<\/textarea/qs/<.*>//g删除所有&lt;&gt;括号,即HTML标签。 p打印所有行,因为我们抑制了输出。

这在网站上对我有用,但如果网站发生变化可能会失败。例如,如果在我们实际查找的元素之前引入了另一个<textarea>元素,它将提取此<textarea>的内容。然后,可以通过搜索sed或类似的东西来优化Oscam.srvid命令。