【问题标题】:Java - How to parse information out of HTML Site? [closed]Java - 如何从 HTML 站点中解析信息? [关闭]
【发布时间】:2014-09-15 13:09:09
【问题描述】:

我有一个带有 HTML 站点的 StringBuffer,并且想要了解该站点的一些特定信息。

1 行是 f.e.:

img class="a" data-src="http://test.com" src="" /

我想要一个带有“http://test.com”的字符串。

有可以帮助我的函数/解析器吗?

【问题讨论】:

标签: java html parsing servlets


【解决方案1】:

这是一个常见问题,您可以通过快速的 Google 搜索找到答案。

查看正则表达式 (regex),因为您可能不止一次需要它。

【讨论】:

  • jeah 但我没有找到我需要的东西。我需要一个正则表达式:xxxINEEDTHATyyy,我可以说:我想要在 xxx 和 yyy 之间的“INEEDTHAT”,而 INEEDTHAT 是未知的
  • 我不想把别人的答案归功于别人,所以这里是同一个问题的链接 - stackoverflow.com/questions/11255353/…
  • 谢谢,这是完美的。最后一个问题:现在我有 2 个模式(p,l),由于顺序,我在同一个匹配器(m)中它们是什么:Pattern p = Pattern.compile(Pattern.quote(pattern1) + "(.*? )" + > > Pattern.quote(pattern2));模式 l = Pattern.compile(Pattern.quote(pattern3) + "(.*?)" + > > Pattern.quote(pattern4));匹配器 m = p.matcher(res.toString()); while (m.find()) { System.out.println(m.group(1)); } 我如何在 m 中获得两种模式?
【解决方案2】:

考虑JSoup 框架。

"Selector"机制来查找和操作html元素。

【讨论】:

    【解决方案3】:

    Jsoup 可以解决问题,只需做一点 css 即可获得所需的任何元素。

    Document doc = Jsoup.connect("http://test.com").get();
    //DOM Selector CSS String see jsoup docs.
    //This will select all image elements with the a class similar to css. IE: img.a
    //http://jsoup.org/cookbook/extracting-data/selector-syntax
    //Get all elements that are images with class of a
    

    Elements images = doc.select("img.a");

    for (Element image : images) {
    //Get the url of the image
    

    String url = image.attr("data-src");;

    }

    【讨论】:

    • 我没明白。我在 doc 中加载 html 页面,但是 doc.select("img[data-src]");做?我不知道 data-src 并且不想要所有图像的 src,只需要 a 类的图像
    • @user3688653 为清楚起见更新了此内容,如果您有任何其他问题,请告诉我。
    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多