Ignore:
Timestamp:
01/10/25 00:33:50 (6 days ago)
Author:
Kristijan <kristijanzafirovski26@…>
Branches:
master
Children:
1c51912
Parents:
c164f8f
Message:

dodadeno informacii za broj na lugje

File:
1 edited

Legend:

Unmodified
Added
Removed
  • backend/GlobeGuru-backend/src/main/java/ScraperThread.java

    rc164f8f r53bad7e  
    5858    }
    5959
    60     private void connectToWeb(String queryUrl) {
     60    private void connectToWeb(String queryUrl, int numPeople) {
    6161        driver.get(queryUrl);
    6262
     
    6565            case "https://booking.escapetravel.mk/":
    6666                wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#hotels-container")));
    67                 try { Thread.sleep(5000);} catch (InterruptedException e) { e.printStackTrace(); }
     67                try { Thread.sleep(10000);} catch (InterruptedException e) { e.printStackTrace(); }//price fetch
    6868                break;
    6969            case "https://magelantravel.mk/":
     
    8282
    8383        switch (url) {
    84             case "https://www.fibula.com.mk/":
    85                 parentDiv = doc.selectFirst("div.flex.flex-col.gap-5");
    86                 if (parentDiv != null) {
    87                     childDivs = parentDiv.select("div");
    88                     for (Element div : childDivs) {
    89                         String data = div.html();
    90                         Option option = optionParser(data);
    91                         if (option != null && optionSet.add(option)) {
    92                             uniqueOptions.add(option);
    93                             System.out.println("Parsed " + option);
    94                         }
    95                     }
    96                 } else {
    97                     System.out.println("Parent div not found");
    98                 }
    99                 break;
    10084            case "https://booking.escapetravel.mk/":
    10185                parentDiv = doc.selectFirst("#hotels-container");
     
    10488                    for (Element div : childDivs) {
    10589                        String data = div.outerHtml();
    106                         Option option = optionParser(data);
     90                        Option option = optionParser(data,numPeople);
    10791                        if (option != null) {
    10892                            Option existingOption = DatabaseUtil.findOption(option);
     
    133117                    for (Element div : childDivs) {
    134118                        String data = div.outerHtml();
    135                         Option newOption = optionParser(data);
     119                        Option newOption = optionParser(data,numPeople);
    136120                        if (newOption != null) {
    137121                            Option existingOption = DatabaseUtil.findOption(newOption);
     
    161145
    162146
    163     private Option optionParser(String data) {
     147    private Option optionParser(String data, int numPeople) {
    164148        Document doc = Jsoup.parse(data);
    165149        Option created = new Option();
     
    167151            case "https://magelantravel.mk/":
    168152                created = parseMagelan(doc);
     153                created.setNumPeople(numPeople);
    169154                break;
    170155            case "https://booking.escapetravel.mk/":
    171156                created = parseEscapeTravel(doc);
     157                created.setNumPeople(numPeople);
    172158                break;
    173159            default:
     
    210196        created.setHotelName(card.attr("data-title"));
    211197        Element countryP = doc.selectFirst("p.text-info");
    212         created.setCountry(countryP != null ? countryP.text() : null);
     198        String country = countryP.text().replaceAll("leto hoteli", "");
     199        created.setCountry(country);
    213200        Element priceElem = doc.selectFirst("span.hotel-price");
    214201        String priceText = priceElem.text();
     
    267254                        String country = countryNode.asText();
    268255                        for (int nokevanja = 2; nokevanja <= 10; nokevanja++) {
    269                             String queryUrl = url + "/destinacii?ah_tip=1&iframe=&affiliate_code=&carter_id=0&carter_region=&carter_dataod=&carter_datado=&destinacija=" + country + "&oddatum=" + date + "&nokevanja=" + nokevanja + "&dodatum=&broj_vozrasni=2&broj_deca=0&spdete1=0&spdete2=0&spdete3=0&spdete4=0";
    270                             connectToWeb(queryUrl);
     256                            for(int lugje = 1; lugje <= 4; lugje++) {
     257                                String queryUrl = url + "/destinacii?ah_tip=1&iframe=&affiliate_code=&carter_id=0&carter_region=&carter_dataod=&carter_datado=&destinacija=" + country + "&oddatum=" + date + "&nokevanja=" + nokevanja + "&dodatum=&broj_vozrasni=" + lugje + "&broj_deca=0&spdete1=0&spdete2=0&spdete3=0&spdete4=0";
     258                                connectToWeb(queryUrl,lugje);
     259                            }
    271260                        }
    272261                    }
     
    282271                ClassLoader classLoader = getClass().getClassLoader();
    283272                JsonNode root = mapper.readTree(new File(classLoader.getResource("CountriesList.json").getFile()));
    284                 JsonNode countries = root.get("countries"); // Assuming "destinations" key in JSON
     273                JsonNode countries = root.get("countries");
    285274                SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
    286275                Calendar calendar = Calendar.getInstance();
     
    292281                        String country = countryNode.asText();
    293282                        for(int nokevanja = 2; nokevanja <=10; nokevanja ++) {
    294                             String queryUrl = url + "/hotels?Search=" + country + "&Date=" + date + "&Nights=" + nokevanja + "&Rooms=1&Adults=2";
    295                             connectToWeb(queryUrl);
     283                            for(int lugje = 1; lugje <= 4; lugje++) {
     284                                String queryUrl = url + "/hotels?Search=" + country + "&Date=" + date + "&Nights=" + nokevanja + "&Rooms=1&Adults=" + lugje;
     285                                connectToWeb(queryUrl,lugje);
     286                            }
    296287                        }
    297288                    }
Note: See TracChangeset for help on using the changeset viewer.