html - 使用命令行从 HTML 文档中提取信息

标签 html linux command-line

我正在使用wget下载 HTML 页面并从中提取信息。具体来说,我想改变这个:

<a href="/312728/" title="The 10 Best Goals ever">
<a href="/671921/" title="Golf at its best">
<a href="/371285/" title="Football Legends">
<a href="/576903/" title="Boxing Legends">

进入此并另存为txt文件。

/312728/The 10 Best Goals ever
/671921/Golf at its best
/371285/Football Legends
/576903/Boxing Legends

我已经尝试过:

wget --quiet -O - http://some-site.com | grep -o '<a href="/?/" title="?"> > new.txt

但这并没有给我想要的结果。

最佳答案

grep 更改为 egrep 以获得更精细的正则表达式功能,您可以执行以下操作:

wget --quiet -O - http://some-site.com | egrep -e '<a href="\/[0-9]*\/" title="[:alnum:]*' 

应该返回:

<a href="/312728/" title="The 10 Best Goals ever">
<a href="/671921/" title="Golf at its best">
<a href="/371285/" title="Football Legends">
<a href="/576903/" title="Boxing Legends">

然后,使用 awk 我们可以用双引号分隔这些内容并挑选出您想要返回的部分:

wget --quiet -O - http://some-site.com | egrep -e '<a href="\/[0-9]*\/" title="[:alnum:]*'  | awk -F'"' '{print $2$4}'

应该返回这个:

/312728/The 10 Best Goals ever
/671921/Golf at its best
/371285/Football Legends
/576903/Boxing Legends

您可以重定向到这样的文本文件:

wget --quiet -O - http://some-site.com | egrep -e '<a href="\/[0-9]*\/" title="[:alnum:]*'  | awk -F'"' '{print $2$4}' >> mytextfile.txt

关于html - 使用命令行从 HTML 文档中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36163189/

相关文章:

jquery - 使用 jquery 滚动幻灯片

javascript - 如何删除 DOM 中多余的模态背景

linux - 在 Ubuntu 中找不到 X11/Xlib.h

python - 如何访问 Python GDB Value 的键或值

linux - QEMU 仅显示黑屏

windows - 为什么这个 Windows 批处理脚本找不到程序 net.exe?

jquery - Vue v-for 无法在幻灯片中正确渲染阴影

javascript - 如何使用 JavaScript 创建教程步骤

c++ - g++ 不再查找标准库 OSX 10.6.8

json - 修改JSON jq中的键值数组