加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 使用awk sed或grep来解析来自网页源的URL

发布时间:2020-12-14 06:03:58 所属栏目:百科 来源:网络整理
导读:我正在尝试解析下载的网页的来源,以获取链接列表.单行可以正常工作.这是我到目前为止所尝试的: 这似乎从一些页面名称中省略了部分URL. $cat file.html | grep -o -E 'b(([w-]+://?|domain[.]org)[^s()]+(?:([wd]+)|([^[:punct:]s]|/)))'|sort -ut/
我正在尝试解析下载的网页的来源,以获取链接列表.单行可以正常工作.这是我到目前为止所尝试的:

这似乎从一些页面名称中省略了部分URL.

$cat file.html | grep -o -E 'b(([w-]+://?|domain[.]org)[^s()<>]+(?:([wd]+)|([^[:punct:]s]|/)))'|sort -ut/ -k3

这将获取所有URL,但我不想包含具有/是锚链接的链接.另外我希望能够指定domain.org/folder/:

$awk 'BEGIN{
RS="</a>"
IGNORECASE=1
}
{
  for(o=1;o<=NF;o++){
    if ( $o ~ /href/){
      gsub(/.*href=42/,"",$o)
      gsub(/42.*/,$o)
      print $(o)
    }
  }
}' file.html

解决方法

如果你只解析像< a>标签,你可以像这样匹配href属性:

$cat file.html | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 | sort | uniq

这将忽略锚,并保证你有独特的.这确实假设页面具有格式良好的(X)HTML,但您可以先将其传递给Tidy.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读