🎁 Descuento sorpresa: ¡Disfrute del 90 % de descuento en su suscripción!

⚡️ Nstproxy - Más de 110M de IPs para raspado y automatización a la velocidad del rayo, a partir de $0.1/GB.

  • Precios
  • Documentación
ES
Contacto

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Producto

Navegador antihuellas
Nstbrowser RPA
Omisión de Cloudflare
Browserless
Desbloqueador web

Solución

Navegador antihuellas basado en la nube
Gestión de múltiples cuentas
Raspado web
Detección anti-bots

Recurso

Precios
Descargar
Mercado de RPA
programa de afiliación
Socios
Blog
Notas de lanzamiento

Apoyo

Contacto

Documentación

Legal

Términos
política de privacidad
Política de cookies

ProductoSoluciónRecursoApoyoLegal

ProductoSoluciónRecurso

ApoyoLegal

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Volver a Blog
web scraping con Java
Web Scraping

Web Crawling con Java en 2024 - ¡La guía más detallada!

Esta guía se centra en el rastreo web con Java en 2024. Proporciona tutoriales detallados paso a paso. ¡Empieza a explorar ahora!
May 10, 2024Carlos Rivera

Tutorial básico de Web Scraping

Esta guía se centra en el web scraping con Java en 2024. Proporciona un tutorial paso a paso sobre cómo extraer datos de sitios web utilizando el sitio Scrapeme como ejemplo. Utilizando Java y la biblioteca jsoup, aprenderá a raspar recursos estáticos de páginas web y recuperar información específica como nombres de productos, imágenes, precios y detalles.

Esta guía le proporcionará los conocimientos necesarios para extraer datos de sitios web similares y le servirá de base para técnicas de extracción web más avanzadas.

Prepárese para aprovechar la potencia de Java para el web scraping en esta era moderna.

Requisitos del entorno:

Es importante tener en cuenta que ya que vamos a utilizar Java para el proyecto de demostración en este artículo, por favor asegúrese de que tiene los siguientes requisitos previos en su lugar antes de continuar:

Entorno recomendado:

  • Java: Cualquier versión 8+ LTS
  • Herramientas de compilación: Cualquier versión de Gradle o Maven compatible con su versión local de Java
  • IDE: Cualquiera de tus preferencias, como Eclipse, IntelliJ IDEA, VS Code

Nota: Se omite el proceso de instalación del entorno.

Entorno Case:

JDK 21

javascript Copy
# java -version
java version "21.0.2" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 21.0.2+13-LTS-58)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.2+13-LTS-58, mixed mode, sharing)

Herramientas de compilación: Gradle

javascript Copy
# gradle -version
Gradle 8.7

Build time: 2024-03-22 15:52:46 UTC
Revision: 650af14d7653aa949fce5e886e685efc9cf97c10

Kotlin: 1.9.22
Groovy: 3.0.17
Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM: 21.0.2 (Oracle Corporation 21.0.2+13-LTS-58)
OS: Mac OS X 14.4.1 aarch64

IDE: IntelliJ IDEA

Creación de proyectos

Información del proyecto:

crear proyecto java

Después de la creación, su proyecto puede tener este aspecto:

expresión del proyecto

Se añaden dependencias y, por el momento, bastará con jsoup (jsoup: Java HTML Parser):

javascript Copy
// gradle => build.gradle => dependencies
implementation 'org.jsoup:jsoup:1.17.2'

¡Vamos a rastrear ScrapeMe!

Ha llegado el momento de rastrear el sitio web. Aquí voy a rastrear el ScrapeMe, sólo como referencia. Puedes revisar todo el progreso y luego terminar tu proyecto.

Análisis del sitio objetivo:

En primer lugar, vamos a echar un vistazo a los datos que queremos raspar desde el sitio Scrapeme. Abra el sitio en un navegador y ver el código fuente para analizar los elementos de destino. A continuación, recuperar los elementos deseados a través de código.

Lista de productos de la página de inicio de ScrapeMe:

Página de ScrapeMe

ScrapeMe Detalles del producto:

Productos ScrapeMe
Nuestro objetivo es rastrear la página de inicio de la información de estos productos, incluido el nombre del producto, las imágenes del producto, el precio del producto y la dirección de los detalles del producto.

Análisis del código fuente de la página

Elementos de la página

Observando el análisis de elementos de página, sabemos que la página actual tiene todos los elementos de página de producto: ul.products, y cada elemento de detalle de producto: li.product.

Elementos de la página

Detalles del producto

Un análisis más detallado encuentra el nombre del producto: a h2, la imagen del producto: a img.src, el precio del producto: a span, la dirección de los detalles del producto: a.href.

Detalles del producto

Demostración de código

ScrapeMeProduct.java

java Copy
public class ScrapeMeProduct {
  /**
   * product detail url
   */
  private String url;
  /**
   * product image
   */
  private String image;
  /**
   * product name
   */
  private String name;
  /**
   * product price
   */
  private String price;

  // Getters and Setters
  
  @Override
  public String toString() {
    return "{ \"url\":\"" + url + "\", "
        + " \"image\": \"" + image + "\", "
        + "\"name\":\"" + name + "\", "
        + "\"price\": \"" + price + "\" }";
  }
}

Scraper.java

java Copy
import org.jsoup.*;
import org.jsoup.nodes.*;
import org.jsoup.select.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Scraper {
  // scrapeme site url
  private static final String SCRAPEME_SITE_URL = "https://scrapeme.live/shop";

  public static List<ScrapeMeProduct> scrape() {
    // html doc for scrapeme page
    Document doc;
    // products data
    List<ScrapeMeProduct> pokemonProducts = new ArrayList<>();
    try {
      doc = Jsoup.connect(SCRAPEME_SITE_URL)
          .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36") // mock userAgent header
          .header("Accept-Language", "*") // mock Accept-Language header
          .get();
      // select product nodes
      Elements products = doc.select("li.product");
      for (Element product : products) {
        ScrapeMeProduct pokemonProduct = new ScrapeMeProduct();
        pokemonProduct.setUrl(product.selectFirst("a").attr("href")); // parse and set product url
        pokemonProduct.setImage(product.selectFirst("img").attr("src")); // parse and set product image
        pokemonProduct.setName(product.selectFirst("h2").text()); // parse and set product name
        pokemonProduct.setPrice(product.selectFirst("span").text()); // parse and set product price
        pokemonProducts.add(pokemonProduct);
      }
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
    return pokemonProducts;
  }
}

Main.java

java Copy
import io.xxx.basic.ScrapeMeProduct;
import io.xxx.basic.Scraper;
import java.util.List;

public class Main {
  public static void main(String[] args) {
    List<ScrapeMeProduct> products = Scraper.scrape();
    products.forEach(System.out::println);
    // continue coding
  }
}

Resultados Expresión

Resultados Expresión

Conclusión

Hasta ahora hemos aprendido a utilizar Java para el rastreo de datos de páginas estáticas simple, el siguiente vamos a ser avanzado sobre esta base, utilizando Java concurrente rastreo ScrapeMe sobre todo los datos del producto , así como el uso de código Java conectado al navegador Nstbrowser para el rastreo de datos , porque el capítulo avanzado se utilizará para Nstbrowser en el navegador sin cabeza y otras características.

Más
raspado web con colly
Web Scraping
Cómo hacer web scraping en Golang usando Colly?
Golang es una de las herramientas más poderosas para el scraping web. Y Colly ayuda mucho cuando se usa Go. Lee este blog y encuentra la información más detallada sobre Colly y aprende cómo raspar sitios web con Colly.
Sep 30, 2024Carlos Rivera
Rastreador web de Java
Web Scraping
Rastreador web en Java: tutorial paso a paso 2024
El rastreador web de Java facilita las tareas de extracción de datos web y automatización. ¿Cómo hacer extracción de datos web con el rastreador web de Java? ¡Aquí tienes todo lo que te gustará!
Aug 16, 2024Robin Brown
scrapy vs beautifulsoup
Web Scraping
Scrapy vs Beautifulsoup - ¿Cuál le conviene más?
Scrapy vs BeautifulSoup, ¿cuáles son las similitudes y diferencias? ¿Cuál es mejor para usted? Descúbrelo en este blog.
Jul 31, 2024Carlos Rivera
navegador antidetección
Web Scraping
El Mejor Navegador Antidetect para Web Scraping 2024
Anti-detect browser le ayuda a ocultar la huella digital de su navegador al raspar la página web. Realmente simplifica tus tareas. ¡Lee este blog y descubre más!
Jul 19, 2024Robin Brown
Urllib, Urllib3, Requests
Web Scraping
Urllib vs Urllib3 vs Requests: ¿Cuál es mejor para usted cuando realiza Web Scraping?
Urllib, urllib3 y request son tres bibliotecas de Python maravillosas y comunes. ¿Cuáles son las diferencias de estos 3? ¡Lea este artículo y encuentre el que mejor se adapte a sus necesidades!
Jul 17, 2024Robin Brown
403 error
Web Scraping
Error 403 Forbidden: ¿Qué es? ¿Cómo solucionarlo?
¡El error 403 es súper molesto! ¿Qué es el error 403 forbidden? ¿Cómo solucionarlo? Hay de todo en este blog.
Jul 12, 2024Robin Brown
Catálogo