Как загрузить все содержимое HTML - Jsoup - PullRequest
0 голосов
/ 04 февраля 2019

Я пытался загрузить строки html-таблицы, используя jsoup, но он анализировал только частичное 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();
        }
    }
}

1 Ответ

0 голосов
/ 04 февраля 2019

Отключите JavaScript, чтобы увидеть точно, что видит Jsoup.Часть страницы загружается с помощью AJAX, поэтому Jsoup не может добраться до нее.Но есть простой способ проверить, откуда поступают дополнительные данные.

Вы можете использовать отладчик браузера, чтобы проверить вкладку Сеть и взглянуть на запросы и ответы.

enter image description here

Вы можете видеть, что таблица загружается с этого URL: https://www.amfiindia.com/modules/LoadModules/MoneyMarketSecurities

Вы можете напрямую использовать этот URL для получения необходимых данных.

Чтобы преодолеть ограничение Jsoup и сразу загрузить весь HTML, вам следует использовать веб-драйвер Selenium, пример здесь: https://stackoverflow.com/a/54510107/9889778

...