【问题标题】:How to read content of a web page through a Java program?如何通过Java程序读取网页内容?
【发布时间】:2011-08-19 22:38:02
【问题描述】:

我打算编写一个 Java 程序来从网站 (http://www.doviz.com) 读取一些汇率,并且想知道什么是只读取(或读取整个并剥离需要的部分)我需要的内容。

感谢任何帮助。

【问题讨论】:

  • 查看JSoup。它非常易于使用,功能强大,而且价格合适!

标签: java web-scraping


【解决方案1】:

我的建议是使用Jsoup

使用类似 css/jquery 的语法解析外部内容非常容易

// Only one line to parse an external content
Document doc = Jsoup.connect("http://jsoup.org").get();

// "Javascript-like" syntax
Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
  String linkHref = link.attr("href");
  String linkText = link.text();
}

// "Jquery/Css-like" syntax
Elements resultLinks = doc.select("h3.r > a");
Elements pngs = doc.select("img[src$=.png]");

只需将 jsoup.jar 库添加到您的类路径即可享受!
开源,当然可以免费使用。

【讨论】:

  • 感谢您将 JSoup 带到桌面上,我将 httpclient 用于上述用例,但我一定会调查 JSoup。是否也可以通过登录来阅读受保护的页面?
  • 可以添加headers信息,所以我觉得可以。 jsoup.org/cookbook/input/load-document-from-url
  • 如果您需要复杂的导航(表单发布、重定向),HttpClient 是一个好主意,可以直接获取要使用 Jsoup 或登录 cookie 解析的 html 内容,并将其注入连接 jsoup ( Jsoup.connect("http://example.com").cookie("auth", "cookies data"))
【解决方案2】:

我建议您实现网页的 RSS 阅读机制(以编程方式)并使用标准解析器提取 RSS xml 的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 2011-10-03
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多