我使用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
但这并没有给我预期的结果。
答案 0 :(得分:1)
将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