阅读网站上的渲染数据

时间:2018-06-04 08:21:53

标签: java url data-extraction

我正在尝试使用JAVA从几个网站中提取数据。 我正在连接到有桌子的网站。 我需要从td元素中提取值。

事情就是: - 当我在浏览器中检查元素时,我可以在源代码中看到元素及其值。 - 当我在浏览器中查看源代码时,我得到了JS。

我正在使用JAVA jdk 1.8中的URL,当下面的代码运行时,我得到了未呈现的JS,而不是访问它时网站显示的元素。

    import java.net.URL;
    import java.net.URLConnection;

     URL url = new URL("https://www.example.com");
    URLConnection conn = url.openConnection();
    conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB;     rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
      while ((f = in.readLine()) != null) {
            builder.append(f);
        }
        alltext = builder.toString();
        if  (alltext.contains("<td colspan="1">Something</td>")) {
        ...Do something
        }

1 个答案:

答案 0 :(得分:0)

原因是你的锯子是由javascript创建的,你不能直接得到这些元素。

为了获取元素数据,只需在javascript完成元素创建后解析它。

两种解决方案:

  1. phantomjs
  2. selenium
  3. 注意:它需要您编写更多代码并花费更多时间来完成它,在这种情况下不容易选择