Advertisement
dereksir

Untitled

Jun 19th, 2024 (edited)
631
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.48 KB | None | 0 0
  1. package com.example;
  2.  
  3. import java.io.FileWriter;
  4. import java.io.IOException;
  5. import java.net.URI;
  6. import java.net.http.HttpClient;
  7. import java.net.http.HttpRequest;
  8. import java.net.http.HttpResponse;
  9.  
  10. import org.jsoup.Jsoup;
  11. import org.jsoup.nodes.Document;
  12. import org.jsoup.nodes.Element;
  13. import org.jsoup.select.Elements;
  14.  
  15. import com.opencsv.CSVWriter;
  16.  
  17. public class Main {
  18.     public static void main(String[] args) {
  19.         // create HtttpClient instance
  20.         HttpClient client = HttpClient.newHttpClient();
  21.  
  22.         // build a HttpRequest
  23.         HttpRequest request = HttpRequest.newBuilder()
  24.                 .uri(URI.create("https://www.scrapingcourse.com/ecommerce/"))
  25.                 .build();
  26.  
  27.         // send asynchronous GET request and handle response.
  28.         client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
  29.                 // extract body as string
  30.                 .thenApply(HttpResponse::body)
  31.                 // retrieve extracted body
  32.                 .thenAccept(htmlContent -> {
  33.  
  34.                     // parse the HTML content using Jsoup
  35.                     Document doc = Jsoup.parse(htmlContent);
  36.  
  37.                     // select all product elements
  38.                     Elements productElements = doc.select(".product");
  39.  
  40.                     // initialize CSV writer
  41.                     try (CSVWriter csvWriter = new CSVWriter(new FileWriter("products.csv"))) {
  42.                     // write header
  43.                     csvWriter.writeNext(new String[]{"Product Title", "Image URL", "Link"});
  44.  
  45.                         // iterate through each product
  46.                         for (Element productElement : productElements) {
  47.                             // retrieve the product title
  48.                             String productTitle = productElement.select("h2").text();
  49.                             // retrieve the image URL
  50.                             String imageUrl = productElement.select("img[src]").attr("src");
  51.                             // retrieve the link
  52.                             String link = productElement.select("a[href]").attr("href");
  53.  
  54.                             // write data to CSV
  55.                             csvWriter.writeNext(new String[]{productTitle, imageUrl, link});
  56.                         }
  57.  
  58.                         System.out.println("Data successfully exported to CSV");
  59.                     } catch (IOException e) {
  60.                         e.printStackTrace();
  61.                     }
  62.                    
  63.            
  64.                 })
  65.                    
  66.                 .join();
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement