美文网首页
2019-01-08写正则表达式grep抓取对应html标签

2019-01-08写正则表达式grep抓取对应html标签

作者: L_ed1b | 来源:发表于2019-01-08 19:22 被阅读0次

今天想抓取国家统计局上的表格想画图来着

表格的html下载好之后,正则表达式却出了问题

我使用的是grep的正则表达式

这里就有一个问题了因为linux文件每行末尾都有一个$号准确的来说就是它只能按行来匹配

如果咱们的标签写的好看一些就不会在同一行,然后我就一直在发愁使用百度上匹配回车换行的方法

'[\s\S]*'总是不成功!

再看看grep为什么不成功!主要是它按行来进行匹配的

算了我也懒得管什么换行符了~

看它不爽好久了直接用tr命令换掉成空格!

接下来所有的标签都在同一行了,我们吧想要的标签内容后面加个换行符,方便待会的提取

例如:

sed -e 's/\(<tr[^>]*>\)/\1\n/g' -e 's/\(<\/tr[^>]*>\)/\1\n/g'

把每一行的内容独立成一行

再把列标签抓出来,然后删除所有标签sed -e 's/<[^>]*>//g'

就得到我们想要的内容了

最后一气呵成!


cat index.php |tr "\r\n" " " |grep -e "<tr[^>]*>.*</tr>"|sed -e 's/\(<tr[^>]*>\)/\1\n/g' -e 's/\(<\/tr[^>]*>\)/\1\n/g' |grep "<td"|sed -e 's/<[^>]*>//g' |awk '{print $1,$2,$3}'

相关文章

网友评论

      本文标题:2019-01-08写正则表达式grep抓取对应html标签

      本文链接:https://www.haomeiwen.com/subject/exvbrqtx.html