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

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

表格的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}'


推荐阅读更多精彩内容

  • grep擅长查找,awk擅长分析(select),sed擅长批量编辑行概述SED的英文全称是 Stream EDi...
    Arroganter阅读 873评论 0 7
  • grep擅长查找,awk擅长分析(select),sed擅长批量编辑行 概述 SED的英文全称是 Stream E...
    piziyang12138阅读 837评论 0 3
  • 本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称...
    mylxsw阅读 4,121评论 3 74
  • grep擅长查找,awk擅长分析(select),sed擅长批量编辑行 概述 SED的英文全称是 Stream E...
    数据萌新阅读 334评论 0 1
  • 今天公司终年庆,在舒适的环境待久了,反应也不敏感了,今天试着没以前紧张了。最近工作顺利的不得了,那些十元,二十元的...
    昇音大师阅读 121评论 0 0
  • 特别棒的阅读体验!读得酣畅淋漓,意犹未尽!作者文笔细腻而有趣,很多场景刻画地生动形象,幽默风趣。里面并没有用枯燥难...
    Apple平平安阅读 52评论 0 0
  • 美团外卖下单30块,翘起脚等待。 最多一个小时 就能收获干净整齐的水果。 苹果块头大,西瓜水分多,就连小黄瓜也青翠...
    肾毒阅读 270评论 8 14
  • 我喜欢你,你从来都知道,但你却一笑而过
    白一墨阅读 85评论 0 0