【问题标题】:How do I get the URLs out of an HTML file?如何从 HTML 文件中获取 URL?
【发布时间】:2011-02-15 07:28:20
【问题描述】:

我需要获取一长串有效 URL 来测试我的 DNS 服务器。我发现了一个包含大量链接的网页,可能会产生很多好的链接(http://www.cse.psu.edu/~groenvel/urls.html),我认为这是最简单的这样做的方法是下载 HTML 文件并简单地 grep 获取 URL。但是,我无法让它仅通过链接列出我的结果。

我知道有很多方法可以做到这一点。我并不挑剔它是如何完成的。

鉴于上面的 URL,我想要一个所有 URL 的列表(每行一个),如下所示:

http://www.cse.psu.edu/~groenvel/
http://www.acard.com/
http://www.acer.com/
...

【问题讨论】:

    标签: url grep


    【解决方案1】:

    方法一

    第一步:

    wget "http://www.cse.psu.edu/~groenvel/urls.html"
    

    第二步:

    perl -0ne 'print "$1\n" while (/a href=\"(.*?)\">.*?<\/a>/igs)' /PATH_TO_YOUR/urls.html | grep 'http://' > /PATH_TO_YOUR/urls.txt
    

    只需将“/PATH_TO_YOUR/”替换为您的文件路径。这将产生一个只有 url 的文本文件。

    方法二

    如果您安装了 lynx,您只需一步即可完成:

    第一步:

    lynx --dump http://www.cse.psu.edu/~groenvel/urls.html | awk '/(http|https):\/\// {print $2}' > /PATH_TO_YOUR/urls.txt
    

    方法3

    使用卷曲:

    第一步

    curl http://www.cse.psu.edu/~groenvel/urls.html 2>&1 | egrep -o  "(http|https):.*\">" | awk  'BEGIN {FS="\""};{print $1}' > /PATH_TO_YOUR/urls.txt
    

    方法四

    使用 wget:

    wget -qO- http://www.cse.psu.edu/~groenvel/urls.html 2>&1 | egrep -o  "(http|https):.*\">" | awk  'BEGIN {FS="\""};{print $1}' > /PATH_TO_YOUR/urls.txt
    

    【讨论】:

      【解决方案2】:

      你需要 wget、grep、sed。 我将尝试解决方案并稍后更新我的帖子。

      更新:

      wget [the_url];
      
      cat urls.html | egrep -i '<a href=".*">' | sed -e 's/.*<A HREF="\(.*\)">.*/\1/i'
      

      【讨论】:

        猜你喜欢
        • 2016-06-30
        • 2022-08-21
        • 2015-11-18
        • 2011-11-06
        • 1970-01-01
        • 1970-01-01
        • 2018-04-29
        • 2017-10-07
        • 2012-08-27
        相关资源
        最近更新 更多