From b174f77f6c37622562916bf1aaebefb5e42997e5 Mon Sep 17 00:00:00 2001 From: michael1986 Date: Fri, 28 Nov 2025 06:23:30 +0100 Subject: [PATCH] start --- .idea/data_source_mapping.xml | 1 + cache/page_cache.db | Bin 15179776 -> 21209088 bytes .../auction/TroostwijkAuctionExtractor.java | 28 +- .../java/com/auction/TroostwijkScraper.java | 315 ++++++++++++++++-- src/{main => test}/resources/test.html | 0 src/test/resources/test_auctions.html | 205 ++++++++++++ 6 files changed, 512 insertions(+), 37 deletions(-) rename src/{main => test}/resources/test.html (100%) create mode 100644 src/test/resources/test_auctions.html diff --git a/.idea/data_source_mapping.xml b/.idea/data_source_mapping.xml index 4e6c19e..68185f7 100644 --- a/.idea/data_source_mapping.xml +++ b/.idea/data_source_mapping.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/cache/page_cache.db b/cache/page_cache.db index 62a5c7e48ad8615391fdb81bb0de9864726132fd..1b423a30b4aae85ec7070869934f2a884e96431e 100644 GIT binary patch delta 228882 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ÐN2 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 delta 1036 zcmWm9`G3{}0KoC*@wB7udG_5X(y+!M+fRVcZ06cv9(uipFN{mbXKPfb^2R!vt+MlwGwFBHm2G!@3fdF_?0L1r}Q z4)vB)G{NF_S-&9K6ABK*j>OtxRk6}oINB35cN7&)%WhB33a6@v zjqW%xJUtQ#faYR8FHG z{W+a87{HkfB%iZ5n{z0jkaHQtc@%Lz7jPki8NyJ8F`N+;a}gzsQV=Seb1dp?fCwP*lsG*jp zspA=*rJe?!<9U|z0xNitMplxfiI+(6GOzF|ukkvoXyy&x@2 wZ~2bz+0Oxf;2=Np6F>6{zw#TubBI6qlfU?z!yMrs{^cmgINq6v|5smm5|K2lIsgCw diff --git a/src/main/java/com/auction/TroostwijkAuctionExtractor.java b/src/main/java/com/auction/TroostwijkAuctionExtractor.java index 7891615..46be1c2 100644 --- a/src/main/java/com/auction/TroostwijkAuctionExtractor.java +++ b/src/main/java/com/auction/TroostwijkAuctionExtractor.java @@ -308,8 +308,7 @@ public class TroostwijkAuctionExtractor { int endPos = Math.min(hrefPos + 1000, html.length()); String context = html.substring(startPos, endPos); - // Try to find location pattern like "City, NL" or "City, Country" - // More flexible pattern to catch various location formats + // Pattern 1: Classic format "City, NL" java.util.regex.Pattern locPattern = java.util.regex.Pattern.compile( "([A-Za-z][A-Za-z\\s\\-']+),\\s*([A-Z]{2})(?![A-Za-z])"); java.util.regex.Matcher locMatcher = locPattern.matcher(context); @@ -320,6 +319,31 @@ public class TroostwijkAuctionExtractor { return location; } + // Pattern 2: HTML format like "City, NL" + // Extract city and country code separately + java.util.regex.Pattern htmlPattern = java.util.regex.Pattern.compile( + "]*>([A-Za-z][A-Za-z\\s\\-',]+?)(?:,)?\\s*(?:)?\\s*\\s*([A-Z]{2})(?![A-Za-z])"); + java.util.regex.Matcher htmlMatcher = htmlPattern.matcher(context); + + if (htmlMatcher.find()) { + String city = htmlMatcher.group(1).trim().replaceAll(",$", ""); // Remove trailing comma + String country = htmlMatcher.group(2); + String location = city + ", " + country; + System.out.println(" Found location (HTML): " + location + " for auction " + href); + return location; + } + + // Pattern 3: Fallback - just find country code after HTML tags + java.util.regex.Pattern countryPattern = java.util.regex.Pattern.compile( + "(?:-->||)\\s*([A-Z]{2})(?![A-Za-z])"); + java.util.regex.Matcher countryMatcher = countryPattern.matcher(context); + + if (countryMatcher.find()) { + String country = countryMatcher.group(1); + System.out.println(" Found country code: " + country + " for auction " + href); + return "Unknown, " + country; + } + System.out.println(" ⚠️ No location found for auction " + href); return "Unknown"; } diff --git a/src/main/java/com/auction/TroostwijkScraper.java b/src/main/java/com/auction/TroostwijkScraper.java index 59fa79c..33ca429 100644 --- a/src/main/java/com/auction/TroostwijkScraper.java +++ b/src/main/java/com/auction/TroostwijkScraper.java @@ -198,7 +198,9 @@ public class TroostwijkScraper { * location contains ", NL" (indicating the Netherlands). Each auction link * contains a unique sale ID in the format A1-xxxxx or A7-xxxxx. * - * @return a list of sale identifiers for auctions located in NL + * Auctions are saved to the database and can be retrieved with getDutchAuctions(). + * + * @return a list of sale identifiers for auctions located in NL (legacy compatibility) */ public List discoverDutchAuctions() { Set saleIds = new HashSet<>(); @@ -246,7 +248,7 @@ public class TroostwijkScraper { } } - // Parse auctions from HTML + // Parse auctions from HTML (saves Dutch auctions to database) int foundOnPage = parseAuctionsFromHtml(html, saleIds); if (foundOnPage == 0) { @@ -262,6 +264,21 @@ public class TroostwijkScraper { return new ArrayList<>(saleIds); } + /** + * Gets all Dutch auctions from the database. + * Call discoverDutchAuctions() first to populate the database. + * + * @return List of Dutch auctions with full metadata + */ + public List getDutchAuctions() { + try { + return db.getAuctionsByCountry("NL"); + } catch (SQLException e) { + System.err.println("Failed to retrieve Dutch auctions from database: " + e.getMessage()); + return new ArrayList<>(); + } + } + /** * Fetches a single page using Playwright */ @@ -305,51 +322,152 @@ public class TroostwijkScraper { } /** - * Parses auctions from HTML and adds Dutch auctions to the set + * Parses auctions from HTML using JSoup and saves Dutch auctions to database. + * Uses proper HTML parsing instead of regex for more reliable extraction. * @return number of Dutch auctions found on this page */ private int parseAuctionsFromHtml(String html, Set saleIds) { int foundCount = 0; - // Simple regex-based parsing for auction links - java.util.regex.Pattern linkPattern = java.util.regex.Pattern.compile( - "href=\"(/a/[^\"]+A[17]-(\\d+)[^\"]*)\""); - java.util.regex.Matcher linkMatcher = linkPattern.matcher(html); + try { + org.jsoup.nodes.Document doc = org.jsoup.Jsoup.parse(html); - while (linkMatcher.find()) { - String href = linkMatcher.group(1); - int auctionId = Integer.parseInt(linkMatcher.group(2)); + // Find all auction links (format: /a/title-A1-12345 or /a/title-A7-12345) + org.jsoup.select.Elements auctionLinks = doc.select("a[href^='/a/']"); - // Avoid duplicates - if (saleIds.contains(auctionId)) { - continue; - } - - // Check if this auction is Dutch (location contains ", NL") - if (isDutchAuction(html, href)) { - saleIds.add(auctionId); - foundCount++; - System.out.println(" Found Dutch auction: " + auctionId + " - " + href); + for (org.jsoup.nodes.Element link : auctionLinks) { + String href = link.attr("href"); + + // Extract auction ID from URL + java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("/a/.*?-A([17])-(\\d+)"); + java.util.regex.Matcher matcher = pattern.matcher(href); + + if (!matcher.find()) { + continue; + } + + String typeNum = matcher.group(1); + int auctionId = Integer.parseInt(matcher.group(2)); + + // Skip duplicates + if (saleIds.contains(auctionId)) { + continue; + } + + // Extract auction info using JSoup + AuctionInfo auction = extractAuctionInfo(link, href, auctionId, "A" + typeNum); + + // Only keep Dutch auctions + if (auction != null && "NL".equals(auction.country)) { + saleIds.add(auctionId); + foundCount++; + + // Save to database + try { + db.upsertAuction(auction); + System.out.println(" Found Dutch auction: " + auctionId + " - " + auction.title + " (" + auction.location + ")"); + } catch (SQLException e) { + System.err.println(" Failed to save auction: " + e.getMessage()); + } + } } + } catch (Exception e) { + System.err.println(" Error parsing HTML: " + e.getMessage()); } return foundCount; } /** - * Checks if an auction is located in the Netherlands + * Extracts auction information from a link element using JSoup + * This method intelligently parses the HTML structure to extract: + * - Title + * - Location (city and country) + * - Lot count (if available) */ - private boolean isDutchAuction(String html, String href) { - int hrefPos = html.indexOf(href); - if (hrefPos == -1) return false; + private AuctionInfo extractAuctionInfo(org.jsoup.nodes.Element link, String href, int auctionId, String type) { + AuctionInfo auction = new AuctionInfo(); + auction.auctionId = auctionId; + auction.type = type; + auction.url = "https://www.troostwijkauctions.com" + href; - // Look at 1000 characters before and after the href for location info - int startPos = Math.max(hrefPos - 500, 0); - int endPos = Math.min(hrefPos + 1000, html.length()); - String context = html.substring(startPos, endPos); + // Extract title from href (convert kebab-case to title) + java.util.regex.Pattern titlePattern = java.util.regex.Pattern.compile("/a/(.+?)-A[17]-"); + java.util.regex.Matcher titleMatcher = titlePattern.matcher(href); + if (titleMatcher.find()) { + String slug = titleMatcher.group(1); + auction.title = slug.replace("-", " "); + // Capitalize first letter + if (!auction.title.isEmpty()) { + auction.title = auction.title.substring(0, 1).toUpperCase() + auction.title.substring(1); + } + } else { + auction.title = "Unknown Auction"; + } - // Look for ", NL" pattern - return context.contains(", NL"); + // Try to find title in link text (more accurate) + String linkText = link.text(); + if (!linkText.isEmpty() && !linkText.matches(".*\\d+.*")) { + // If link text doesn't contain numbers, it's likely the title + String[] parts = linkText.split(",|\\d+"); + if (parts.length > 0 && parts[0].trim().length() > 5) { + auction.title = parts[0].trim(); + } + } + + // Extract location using JSoup selectors + // Look for

tags that contain location info + org.jsoup.select.Elements locationElements = link.select("p"); + for (org.jsoup.nodes.Element p : locationElements) { + String text = p.text(); + + // Pattern: "City, Country" or "City, Region, Country" + if (text.matches(".*[A-Z]{2}$")) { + // Ends with 2-letter country code + String countryCode = text.substring(text.length() - 2); + String cityPart = text.substring(0, text.length() - 2).trim(); + + // Remove trailing comma or whitespace + cityPart = cityPart.replaceAll("[,\\s]+$", ""); + + auction.country = countryCode; + auction.city = cityPart; + auction.location = cityPart + ", " + countryCode; + break; + } + } + + // Fallback: check HTML content directly + if (auction.country == null) { + String html = link.html(); + java.util.regex.Pattern locPattern = java.util.regex.Pattern.compile( + "([A-Za-z][A-Za-z\\s,\\-']+?)\\s*(?:)?\\s*\\s*([A-Z]{2})(?![A-Za-z])"); + java.util.regex.Matcher locMatcher = locPattern.matcher(html); + + if (locMatcher.find()) { + String city = locMatcher.group(1).trim().replaceAll(",$", ""); + String country = locMatcher.group(2); + auction.city = city; + auction.country = country; + auction.location = city + ", " + country; + } + } + + // Extract lot count if available (kavels/lots) + org.jsoup.select.Elements textElements = link.select("*"); + for (org.jsoup.nodes.Element elem : textElements) { + String text = elem.ownText(); + if (text.matches("\\d+\\s+(?:kavel|lot|item)s?.*")) { + java.util.regex.Pattern countPattern = java.util.regex.Pattern.compile("(\\d+)"); + java.util.regex.Matcher countMatcher = countPattern.matcher(text); + if (countMatcher.find()) { + auction.lotCount = Integer.parseInt(countMatcher.group(1)); + break; + } + } + } + + return auction; } /** @@ -664,13 +782,34 @@ public class TroostwijkScraper { // Domain classes and services // ---------------------------------------------------------------------- + /** + * Represents auction metadata (veiling informatie) + */ + public static class AuctionInfo { + public int auctionId; // Unique auction ID (from URL) + public String title; // Auction title + public String location; // Location (e.g., "Amsterdam, NL") + public String city; // City name + public String country; // Country code (e.g., "NL") + public String url; // Full auction URL + public String type; // Auction type (A1 or A7) + public int lotCount; // Number of lots/kavels + public LocalDateTime closingTime; // Closing time if available + + @Override + public String toString() { + return String.format("Auction{id=%d, type=%s, title='%s', location='%s', lots=%d, url='%s'}", + auctionId, type, title, location, lotCount, url); + } + } + /** * Simple POJO representing a lot (kavel) in an auction. It keeps track * of the sale it belongs to, current bid and closing time. The method * minutesUntilClose computes how many minutes remain until the lot closes. */ static class Lot { - + int saleId; int lotId; String title; @@ -684,7 +823,7 @@ public class TroostwijkScraper { String url; LocalDateTime closingTime; // null if unknown boolean closingNotified; - + long minutesUntilClose() { if (closingTime == null) return Long.MAX_VALUE; return java.time.Duration.between(LocalDateTime.now(), closingTime).toMinutes(); @@ -704,18 +843,33 @@ public class TroostwijkScraper { } /** * Creates tables if they do not already exist. The schema includes - * tables for sales, lots, images, and object labels. This method is + * tables for auctions, lots, images, and object labels. This method is * idempotent; it can be called multiple times. */ void ensureSchema() throws SQLException { try (Connection conn = DriverManager.getConnection(url); Statement stmt = conn.createStatement()) { - // Sales table + // Auctions table (veilingen) + stmt.execute("CREATE TABLE IF NOT EXISTS auctions (" + + "auction_id INTEGER PRIMARY KEY," + + "title TEXT NOT NULL," + + "location TEXT," + + "city TEXT," + + "country TEXT," + + "url TEXT NOT NULL," + + "type TEXT," + + "lot_count INTEGER DEFAULT 0," + + "closing_time TEXT," + + "discovered_at INTEGER" // Unix timestamp + + ")"); + + // Sales table (legacy - keep for compatibility) stmt.execute("CREATE TABLE IF NOT EXISTS sales (" + "sale_id INTEGER PRIMARY KEY," + "title TEXT," + "location TEXT," + "closing_time TEXT" + ")"); + // Lots table stmt.execute("CREATE TABLE IF NOT EXISTS lots (" + "lot_id INTEGER PRIMARY KEY," @@ -731,8 +885,9 @@ public class TroostwijkScraper { + "url TEXT," + "closing_time TEXT," + "closing_notified INTEGER DEFAULT 0," - + "FOREIGN KEY (sale_id) REFERENCES sales(sale_id)" + + "FOREIGN KEY (sale_id) REFERENCES auctions(auction_id)" + ")"); + // Images table stmt.execute("CREATE TABLE IF NOT EXISTS images (" + "id INTEGER PRIMARY KEY AUTOINCREMENT," @@ -742,8 +897,98 @@ public class TroostwijkScraper { + "labels TEXT," + "FOREIGN KEY (lot_id) REFERENCES lots(lot_id)" + ")"); + + // Create indexes for better query performance + stmt.execute("CREATE INDEX IF NOT EXISTS idx_auctions_country ON auctions(country)"); + stmt.execute("CREATE INDEX IF NOT EXISTS idx_lots_sale_id ON lots(sale_id)"); } } + + /** + * Inserts or updates an auction record + */ + synchronized void upsertAuction(AuctionInfo auction) throws SQLException { + String sql = "INSERT INTO auctions (auction_id, title, location, city, country, url, type, lot_count, closing_time, discovered_at)" + + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + + " ON CONFLICT(auction_id) DO UPDATE SET " + + "title = excluded.title, location = excluded.location, city = excluded.city, " + + "country = excluded.country, url = excluded.url, type = excluded.type, " + + "lot_count = excluded.lot_count, closing_time = excluded.closing_time"; + + try (Connection conn = DriverManager.getConnection(url); PreparedStatement ps = conn.prepareStatement(sql)) { + ps.setInt(1, auction.auctionId); + ps.setString(2, auction.title); + ps.setString(3, auction.location); + ps.setString(4, auction.city); + ps.setString(5, auction.country); + ps.setString(6, auction.url); + ps.setString(7, auction.type); + ps.setInt(8, auction.lotCount); + ps.setString(9, auction.closingTime != null ? auction.closingTime.toString() : null); + ps.setLong(10, Instant.now().getEpochSecond()); + ps.executeUpdate(); + } + } + + /** + * Retrieves all auctions from the database + */ + synchronized List getAllAuctions() throws SQLException { + List auctions = new ArrayList<>(); + String sql = "SELECT auction_id, title, location, city, country, url, type, lot_count, closing_time FROM auctions"; + + try (Connection conn = DriverManager.getConnection(url); Statement stmt = conn.createStatement()) { + ResultSet rs = stmt.executeQuery(sql); + while (rs.next()) { + AuctionInfo auction = new AuctionInfo(); + auction.auctionId = rs.getInt("auction_id"); + auction.title = rs.getString("title"); + auction.location = rs.getString("location"); + auction.city = rs.getString("city"); + auction.country = rs.getString("country"); + auction.url = rs.getString("url"); + auction.type = rs.getString("type"); + auction.lotCount = rs.getInt("lot_count"); + String closing = rs.getString("closing_time"); + if (closing != null) { + auction.closingTime = LocalDateTime.parse(closing); + } + auctions.add(auction); + } + } + return auctions; + } + + /** + * Retrieves auctions by country code + */ + synchronized List getAuctionsByCountry(String countryCode) throws SQLException { + List auctions = new ArrayList<>(); + String sql = "SELECT auction_id, title, location, city, country, url, type, lot_count, closing_time " + + "FROM auctions WHERE country = ?"; + + try (Connection conn = DriverManager.getConnection(url); PreparedStatement ps = conn.prepareStatement(sql)) { + ps.setString(1, countryCode); + ResultSet rs = ps.executeQuery(); + while (rs.next()) { + AuctionInfo auction = new AuctionInfo(); + auction.auctionId = rs.getInt("auction_id"); + auction.title = rs.getString("title"); + auction.location = rs.getString("location"); + auction.city = rs.getString("city"); + auction.country = rs.getString("country"); + auction.url = rs.getString("url"); + auction.type = rs.getString("type"); + auction.lotCount = rs.getInt("lot_count"); + String closing = rs.getString("closing_time"); + if (closing != null) { + auction.closingTime = LocalDateTime.parse(closing); + } + auctions.add(auction); + } + } + return auctions; + } /** * Inserts or updates a lot record. Uses INSERT OR REPLACE to diff --git a/src/main/resources/test.html b/src/test/resources/test.html similarity index 100% rename from src/main/resources/test.html rename to src/test/resources/test.html diff --git a/src/test/resources/test_auctions.html b/src/test/resources/test_auctions.html new file mode 100644 index 0000000..78af290 --- /dev/null +++ b/src/test/resources/test_auctions.html @@ -0,0 +1,205 @@ +Alle veilingen | Troostwijk Auctions

Alle veilingen

522 resultaten

Vandaag 28 nov 25

Download nu de Troostwijk Auctions app!

App storeGoogle play
\ No newline at end of file