Jelajahi Sumber

Nordic bet parsing done

Axel Nordh 3 tahun lalu
induk
melakukan
024ed895bd

+ 15 - 4
PW-HtmlUnit/src/main/java/Main/ParseUrls.java

@@ -26,20 +26,31 @@ public class ParseUrls {
 		List<Product> webhallenProducts = products.stream().filter(p -> p.getStore().equals(StoreParser.WEBHALLEN)).toList();
 		List<Product> netOnNetProducts = products.stream().filter(p -> p.getStore().equals(StoreParser.NET_ON_NET)).toList();
 
+		System.out.println(StoreParser.MEDIA_MARKT);
 		MediaMarkt mediaMarkt = new MediaMarkt();
+		// new Thread(() -> {
 		mediaMarktProducts.forEach(mediaMarkt::checkProduct);
-
+		// }).start();
+		System.out.println(StoreParser.KOMPLETT);
 		Komplett komplett = new Komplett();
+		// new Thread(() -> {
 		komplettProducts.forEach(komplett::checkProduct);
-
+		// }).start();
+		System.out.println(StoreParser.WEBHALLEN);
 		Webhallen webhallen = new Webhallen();
+		// new Thread(() -> {
 		webhallenProducts.forEach(webhallen::checkProduct);
-
+		// }).start();
+		System.out.println(StoreParser.NET_ON_NET);
 		NetOnNet netOnNet = new NetOnNet();
+		// new Thread(() -> {
 		netOnNetProducts.forEach(netOnNet::checkProduct);
-
+		// }).start();
+		System.out.println(StoreParser.EL_GIGANTEN);
 		ElGiganten elGiganten = new ElGiganten();
+		// new Thread(() -> {
 		elGigantenProducts.forEach(elGiganten::checkProduct);
+		// }).start();
 	}
 
 }

+ 18 - 13
PW-HtmlUnit/src/main/java/Parsers/ElGiganten.java

@@ -4,6 +4,7 @@ import java.time.Duration;
 import java.time.LocalDateTime;
 
 import org.openqa.selenium.By;
+import org.openqa.selenium.TimeoutException;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.chrome.ChromeDriver;
 import org.openqa.selenium.support.ui.ExpectedConditions;
@@ -18,20 +19,24 @@ public class ElGiganten extends ParserBase {
 
 		driver.get(product.getUrl());
 		WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(30));
-		wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(@data-ta,'productprice-text')]")));
-		//
-		WebElement findElement = driver.findElement(By.xpath("//span[contains(@data-ta,'productprice-text')]"));
-
-		String priceValueString = findElement.getText();
-		Float priceValue = formatPrice(priceValueString);
-		float storedProductPrice = getStoredProductPrice(product);
-
-		if ((storedProductPrice != -1 && priceValue < storedProductPrice) || storedProductPrice == -1) {
-			product.setUpdatedDate(LocalDateTime.now());
-			product.setPrice(priceValue);
-			insertProduct(product);
+		try {
+			wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(@data-ta,'productprice-text')]")));
+
+			//
+			WebElement findElement = driver.findElement(By.xpath("//span[contains(@data-ta,'productprice-text')]"));
+
+			String priceValueString = findElement.getText();
+			Float priceValue = formatPrice(priceValueString);
+			float storedProductPrice = getStoredProductPrice(product);
+
+			if ((storedProductPrice != -1 && priceValue < storedProductPrice) || storedProductPrice == -1) {
+				product.setUpdatedDate(LocalDateTime.now());
+				product.setPrice(priceValue);
+				insertProduct(product);
+			}
+		} catch (TimeoutException e) {
+			System.out.println("Failed to get " + product.getName() + " from " + product.getStore());
 		}
-
 		driver.close();
 		driver.quit();
 	}

+ 1 - 0
PW-HtmlUnit/src/main/java/Parsers/ParserBase.java

@@ -62,6 +62,7 @@ public class ParserBase {
 
 			stat.execute();
 
+			System.out.println("NEW BETTER PRICE " + product.getStore() + " modell " + product.getName());
 			sendUpdatedPriceMail(product);
 
 		} catch (SQLException e) {