https://goworkabit.com/tooampsud
如何解析该元素的信息? 我已经尝试过了:
try {
public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
Connection connection; = Jsoup.connect("https://goworkabit.com/tooampsud").userAgent(USER_AGENT);
Document doc; = connection.get();
Elements jobs = doc.select("c-workbites-list__workbites-title");
for (int i = 0; i < jobs.size(); i++) {
System.out.println(jobs.get(i).text());
}
}
答案 0 :(得分:1)
由于表中的数据是使用javascript加载的,因此当您仅使用Jsoup解析页面时,它将不包含表中的任何数据。 一种选择是使用任何页面渲染工具(例如Selenium + Web浏览器)渲染页面,然后使用Jsoup解析页面
您可以尝试以下代码。这将为您提供所需的数据以进一步解析。请注意,这种方法相当慢,因为它期望物理浏览器加载数据。
WebDriver driver = new ChromeDriver();
try {
driver.get("https://goworkabit.com/tooampsud");
Document doc = Jsoup.parse(driver.getPageSource());
Elements jobs = doc.select("tr.c-workbites-table__workbites-row");
for (Element job : jobs) {
System.out.print(job.select("td>a.c-workbites-table__workbites-title").text() +" , ");
System.out.println(job.select("td.text-right").text());
}
} catch(Exception e){
e.printStackTrace();
} finally {
driver.quit();
}
答案 1 :(得分:0)
System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
try {
driver.get("https://goworkabit.com/tooampsud");
Document doc = Jsoup.parse(driver.getPageSource());
Elements jobs = doc.select(".c-workbites-list__workbites-title");
for (Element job : jobs) {
if (!(job.toString()).contains("filled")) {
System.out.println(job.text());
}
}
} catch(Exception e){
e.printStackTrace();
} finally {
driver.quit();
}
这对我有用,谢谢克里希纳!