java - 如何使用 Jsoup 从 html 对象获取 id - Java

标签 java jsoup

我想用 Jsoup 查找 html 对象的 id。

<object id="gamediv" </object>

我尝试过:

String startingURL = "http://www.example.com";
try {
    doc = Jsoup.connect(startingURL)
            .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
            .referrer("http://www.google.com")
            .timeout(1000*5) //it's in milliseconds, so this means 5 seconds.              
            .get();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Elements get = doc.select("object");

for (Element elem : get){
    if (get.attr("id") != null){
        System.out.println(get.attr("id"));
    }
}

但什么也没发生。请问有什么帮助吗?

最佳答案

首先,您可以将代码简化为简单。

for (Element elem : doc.select("object[id]")) {
    System.out.println(elem.attr("id"));
}

其次,如果doc不包含您​​正在查找的object,则意味着它不是由服务器发送给它的。最常见的原因可能有几个

  • 用户代理 header 不正确,
  • 此 HTML 代码是由浏览器通过 JavaScript 生成的。

第一种情况似乎不适用于此处,因此在动态内容的情况下,您可能应该使用其他库,因为 Jsoup 只是解析器,而不是浏览器模拟器。如果您正在寻找更强大的工具,请查看像 Selenium 这样的网络驱动程序。

关于java - 如何使用 Jsoup 从 html 对象获取 id - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592387/

相关文章:

java - Jsoup 选择深度元素(来自父级的 DOM 级别)

java - Eclipse java项目其中目录结构!=包结构

Java Mac HMAC 与 C++ OpenSSL hmac

java - 更改 Servlet 发布位置?

java - 如何获取 "dd"标签的文本?

java - 使用 JSOUP 编写 JSON

java - HTTP CURL 有效 - Java Jsoup 无效

java - 如何以编程方式从线程外部启动 EJB 计时器

java - 未找到 Thymeleaf 静态图像

当条件明显为假时,Java 执行 "if" block