【问题标题】:extract a url from html page in java [closed]从java中的html页面中提取一个url [关闭]
【发布时间】:2014-03-01 16:35:05
【问题描述】:

我想从一个html页面中提取一个url,它的html代码可能看起来像paste.ubuntu.com/7014841(在这里发布它似乎太长了,因为它有数千行代码)。

我想提取 .3gp 文件的 url,例如

http://dl.clip2ni.com/m/VIDEO/92-11/3GP/consert25tir-milad.3gp

我该怎么做?

【问题讨论】:

  • 提取什么网址?从哪里来?
  • 用正则表达式……什么的……或者……不知道……你的问题太模糊了
  • 因为这个页面有数千行代码我无法复制/粘贴到问题中。这个页面:paste.ubuntu.com/7014841
  • 因此,您想提取指向任何.3gp 文件的链接值。您对任何看起来像 http://whatever/something.3gp 的文本不感兴趣,如果它不在 <a href="...">...</a>

标签: java html


【解决方案1】:

假设您想从<a href="...">..</a> 锚点中提取href 属性的值,您可以简单地使用像Jsoup 这样的HTML 解析器。

如何选择所有.png 文件的图像的代码示例。

Document doc = Jsoup.connect("http://example.com/").get();

Elements pngs = doc.select("img[src$=.png]");

//After this just iterate over selected elements 
//and extract values you are interested in like 

for (Element png : pngs)
    System.out.println(png.attr("src"));

现在这应该让您了解如何从链接中提取.3gp

【讨论】:

  • 使用 .png 可以,但使用 .3gp 或 .mp4 无效:元素 pngs = doc.select("a[href$=.3gp]"); for (元素 png :pngs) System.out.println(png.attr("href"));
  • 奇怪,我使用了您对您提供的 HTML 的评论中的代码,它对我有用。我怀疑这个 HTML 代码可以由 JavaScript 生成,当您连接到页面时,在 JS 启动之前还没有 3gp 链接。尝试打印 doc 对象的内容以查看 Jsoup 看到和解析的 HTML 代码.
【解决方案2】:

逐行读取html文件的内容,

    String extract = "";
    FileInputStream fin = new FileInputStream("page.html");
    String val = fin.readLine();
    while (val != null) {
        if (val.contains("http://")) {
            extract = val;
            break;
        } else {
            val = fin.readLine();
        }
    }

如果任何 html 代码行包含 http 序列,则将其视为链接。

【讨论】:

    猜你喜欢
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2012-06-04
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多