【发布时间】:2019-06-06 08:35:36
【问题描述】:
我想从这个可用的数据表中获取数据 提到的网址。
这不适用于此网址,仅适用于其他网址,它可以正常工作。
这是网页抓取的代码,但问题是该网址不起作用。
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class GetData {
public static void main(String[] args) throws InterruptedException {
String html = "http://programs.dsireusa.org/system/program";
try {
Document doc = Jsoup.connect(html).get();
Elements tableElements = doc.select("table");
Elements tableHeaderEles = tableElements.select("thead tr th");
System.out.println("headers");
Thread.sleep(5000);
System.out.println(tableHeaderEles.size());
for (int i = 0; i < tableHeaderEles.size(); i++) {
System.out.println(tableHeaderEles.get(i).text());
}
System.out.println();
Elements tableRowElements = tableElements.select(":not(thead) tr");
for (int i = 0; i < tableRowElements.size(); i++) {
Element row = tableRowElements.get(i);
System.out.println("row");
Elements rowItems = row.select("td");
for (int j = 0; j < rowItems.size(); j++) {
System.out.println(rowItems.get(j).text());
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
我期望这个数据表中所有可用数据的输出 url 这个程序适用于其他其他 url。
【问题讨论】:
-
这和python有什么关系?
-
如果页面使用 JavaScript 加载内容,那么您将不得不使用 ie。
Selenium控制可以运行 JavaScript 的网络浏览器。或者你可以在 Chrome/Firefox 中使用DevTools来查找 JavaScript 用来从服务器获取数据的 url,然后你可以使用这个 url 来获取数据。 JavaScript 主要使用 JSON 从服务器获取数据,因此您不必抓取它。
标签: java python web-scraping datatable