簡體   English   中英

我如何從網頁中抓取一些數據

[英]How I can scrape some data from web page

我有網頁抓取問題。 我想做的是這樣的:

我有這個網站: https : //www.arrentacar.rs/sr/vozni-park/#

正如您在單擊頁面按鈕“Rezervisi”時看到的那樣,我想抓取下一個數據:

站點打開新窗口時的第一個下拉菜單,下拉列表中的“Volkswagen UP!1.0”我想抓取所有汽車,然后在這個名為“Mesto preuzimanja vozila”的下拉菜單中我想抓取所有項目,並在名為的下拉菜單中“Mesto vracanja vozila”我想刮掉所有物品。

這是我在第一個下拉菜單中嘗試汽車名稱的方式:

Document doc
            = Jsoup.connect("https://www.arrentacar.rs/sr/vozni-park/#").get();

    Elements elems = doc.select(".inner-form__elements");

    for (Element e : elems) {
        String carName = e.select(".select-vehicle").text();
        System.out.println(carName);
    }

這工作正常,但它不會在表列中顯示數據,而來自 IMDB 的標題和評級顯示我正確。

您的選擇器可以進行調整。 當您可以使用特定 id 時,不要按類選擇。 在這里您可以,因為您想要的select具有唯一的名稱和 ID <select name="car" id="carlist" ... >所以它們中的任何一個都將是更好的選擇。 通過這種方式,您還可以避免for循環,它當前只循環一個元素,因為只有一個元素具有類inner-form__elements 你的第二個選擇器.select-vehicle也太籠統了,它選擇了太多。 這樣text()將它包含的所有內容作為一個字符串返回。 要獲得唯一的選擇,你不得不選擇所有標簽option這是內部selectid等於carlist 然后你可以迭代它們,這樣你就會得到單個字符串。 前兩個下拉菜單的代碼是:

Document doc = Jsoup.connect("https://www.arrentacar.rs/sr/vozni-park/#").get();

// selecting all "options" from element with id=carlist
Elements cars = doc.select("#carlist > option");

// remove "Izaberi vozilo"
cars.remove(cars.first());

// display all cars
for (Element car : cars) {
    System.out.println(car.text());
}

System.out.println("------");

// selecting all "options" from element with id=mestopreuzimanja
Elements startLocations = doc.select("#mestopreuzimanja > option");

// display locations
for (Element startLocation : startLocations) {
    System.out.println(startLocation.text());
}

嘗試以與 startLocations 相同的方式選擇第三個下拉列表(目標位置)的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM