Как очистить данные с помощью Jsoup на странице, отображаемой в JS - PullRequest
0 голосов
/ 27 ноября 2018

В настоящее время я очищаю ссылки, чтобы получить доступ к каждому отдельному элементу с этого веб-сайта:

https://southwesthumane.org/adopt/dogs/

Но этот URL содержит несколько страниц, отображаемых JS.Исходный код веб-сайта для JS выглядит следующим образом:

<span id="ContentPlaceHolder_Item3_AdoptionDogs_2_dpDogs"><a href="javascript:__doPostBack(&#39;ctl00$ctl00$ContentPlaceHolder$Item3$AdoptionDogs_2$dpDogs$ctl00$ctl00&#39;,&#39;&#39;)">Previous</a>&nbsp;<a href="javascript:__doPostBack(&#39;ctl00$ctl00$ContentPlaceHolder$Item3$AdoptionDogs_2$dpDogs$ctl01$ctl00&#39;,&#39;&#39;)">1</a>&nbsp;<span>2</span>&nbsp;<a href="javascript:__doPostBack(&#39;ctl00$ctl00$ContentPlaceHolder$Item3$AdoptionDogs_2$dpDogs$ctl01$ctl02&#39;,&#39;&#39;)">3</a>&nbsp;<a href="javascript:__doPostBack(&#39;ctl00$ctl00$ContentPlaceHolder$Item3$AdoptionDogs_2$dpDogs$ctl01$ctl03&#39;,&#39;&#39;)">4</a>&nbsp;<a href="javascript:__doPostBack(&#39;ctl00$ctl00$ContentPlaceHolder$Item3$AdoptionDogs_2$dpDogs$ctl01$ctl04&#39;,&#39;&#39;)">5</a>&nbsp;<a href="javascript:__doPostBack(&#39;ctl00$ctl00$ContentPlaceHolder$Item3$AdoptionDogs_2$dpDogs$ctl02$ctl00&#39;,&#39;&#39;)">Next</a>&nbsp;</span>

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

Вот мой код:

        public static void main(String args[]){
        try{
            Document dogs = Jsoup.connect("https://southwesthumane.org/adopt/dogs/").get();
            Elements links_dogs = dogs.select(":containsOwn(Details »)");

            //***********************DOGS*****************************
            for (Element link : links_dogs) {
                String url = "https://southwesthumane.org" + link.attr("href");
                System.out.println("\nurl: " + url);
                try{
                    int index = 0;
                    Document dog = Jsoup.connect(url).userAgent("Mozilla/5.0").get();
                    Elements name = dog.select("h3");
                    Elements description = dog.select("div.Animaldetails");
                    Elements details = dog.select("div.AnimalDetails > strong");
                    Elements img = dog.select("img[src~=.(jpg|jpeg)]");
                    for (Element code : name) {
                        if (index % 2 == 1)
                            System.out.println("Name: " + code.text());
                        index++;
                    }
                    for (Element code : img) {
                        System.out.println("Image: " + code.attr("src"));
                    }
                    for (Element code : description) {
                        System.out.println("Description: " + code.select("p").text());
                    }
                    for (Element code : details) {
                        System.out.println(code.text() + " " + code.nextSibling().toString());
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Например, сейчас есть 5 страниц, и я только захожу на первую страницу, я хочу получить доступ к остальной частидоступные страницы.

...