Java Jsoup解析站点但未获取所需元素

时间:2018-07-21 19:11:11

标签: java jsoup

enter image description here

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());
    }
}  

2 个答案:

答案 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();
    }

这对我有用,谢谢克里希纳!