RELIABILITY FIX
All checks were successful
Build and Push Quarkus Image / build-and-push (push) Successful in 4m59s
All checks were successful
Build and Push Quarkus Image / build-and-push (push) Successful in 4m59s
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package nl.veenm.jobfindr.scrapers;
|
package nl.veenm.jobfindr.scrapers;
|
||||||
|
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
import jakarta.inject.Inject;
|
||||||
import nl.veenm.jobfindr.domain.Vacature;
|
import nl.veenm.jobfindr.domain.Vacature;
|
||||||
|
import nl.veenm.jobfindr.util.EventService;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
@@ -13,15 +15,20 @@ import java.time.LocalDate;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class ScraperService {
|
public class ScraperService {
|
||||||
|
|
||||||
private static final Logger log = Logger.getLogger(ScraperService.class);
|
private static final Logger log = Logger.getLogger(ScraperService.class);
|
||||||
|
private final EventService eventService;
|
||||||
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ScraperService(EventService eventService) {
|
||||||
|
this.eventService = eventService;
|
||||||
|
}
|
||||||
|
|
||||||
public List<Vacature> scrapeVacatures(String url) throws IOException {
|
public List<Vacature> scrapeVacatures(String url) throws IOException {
|
||||||
// Maak verbinding met de website
|
// Maak verbinding met de website
|
||||||
Document doc = Jsoup.connect(url).get();
|
Document doc = Jsoup.connect(url).get();
|
||||||
@@ -42,9 +49,15 @@ public class ScraperService {
|
|||||||
link = "https://www.meesterbaan.nl" + link;
|
link = "https://www.meesterbaan.nl" + link;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert vacatureElement.parent() != null;
|
String location = "Onbekende locatie";
|
||||||
Element locationElement = vacatureElement.parent().selectFirst("div.location.mt-1");
|
Element parent = vacatureElement.parent();
|
||||||
String location = locationElement != null ? locationElement.text() : "Onbekende locatie";
|
|
||||||
|
if (parent != null) {
|
||||||
|
Element locationElement = parent.selectFirst("div.location.mt-1");
|
||||||
|
if (locationElement != null) {
|
||||||
|
location = locationElement.text();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Maak een Vacature-object en voeg het toe aan de lijst
|
// Maak een Vacature-object en voeg het toe aan de lijst
|
||||||
vacatures.add(new Vacature(title, link, location));
|
vacatures.add(new Vacature(title, link, location));
|
||||||
@@ -54,11 +67,11 @@ public class ScraperService {
|
|||||||
try {
|
try {
|
||||||
getVacatureDetails(vacature);
|
getVacatureDetails(vacature);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
eventService.logError(getClass().getName(), "scrapeVacatures", "error during scraping", e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return vacatures.stream().filter(a -> !a.getLocatie().equals("Onbekende locatie")).collect(Collectors.toList());
|
return vacatures.stream().filter(a -> !a.getLocatie().equals("Onbekende locatie")).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getVacatureDetails(Vacature vacature) throws IOException {
|
public void getVacatureDetails(Vacature vacature) throws IOException {
|
||||||
|
|||||||
Reference in New Issue
Block a user