【问题标题】:How to Load Entire Contents of HTML - Jsoup如何加载 HTML 的全部内容 - Jsoup
【发布时间】:2019-02-04 07:28:29
【问题描述】:

我试图使用 jsoup 下载 html 表格行,但它只解析部分 html 内容。我也尝试使用下面的代码来加载完整的 html 内容,但不起作用。任何建议将不胜感激。

public class AmfiDaily {
    public static void main(String[] args) {
        AmfiDaily amfiDaily = new AmfiDaily();

        amfiDaily.extractAmfiTable("https://www.amfiindia.com/intermediary/other-data/transaction-in-debt-and-money-market-securities");
    }

    public  void extractAmfiTable(String url){
        Document doc;

        try {
            FileWriter writer = new FileWriter("D:\\FTRACK\\Amfi Report " + java.time.LocalDate.now() + ".csv");
            Document document = Jsoup.connect(url)
                    .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
                    .maxBodySize(0)
                    .timeout(100000*5)
                    .get();

            Elements rows = document.select("tr");  

                 for (Element row : rows) {              

                Elements cells1 = row.select("td");                   

                for (Element cell : cells1) {

                    if (cell.text().contains(",")) {

                        writer.write(cell.text().concat(","));

                    }
                    else
                    {
                        writer.write(cell.text().concat(","));
                    }                       

                }                   

                writer.write("\n");                   
                 }
            writer.close();
        } catch (IOException e) {
            e.getStackTrace();
        }
    }
}

【问题讨论】:

    标签: java web-scraping jsoup


    【解决方案1】:

    禁用 JavaScript 以准确查看 Jsoup 看到的内容。部分页面使用 AJAX 加载,因此 Jsoup 无法访问它。但是有一种简单的方法可以检查额外数据的来源。

    您可以使用浏览器调试器检查“网络”选项卡并查看请求和响应。

    您可以看到该表是从该 URL 下载的: https://www.amfiindia.com/modules/LoadModules/MoneyMarketSecurities

    您可以直接使用此网址获取您需要的数据。

    要克服 Jsoup 的限制并一次加载整个 HTML,您应该使用 Selenium webdriver,例如:https://stackoverflow.com/a/54510107/9889778

    【讨论】:

    • 非常感谢
    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2014-01-21
    相关资源
    最近更新 更多