Guide pour le Scraping avec Java

Vous ne savez pas quels outils télécharger pour vous aider à créer un environnement Java idéal pour la collecte de données ? Vous ne voyez pas clairement comment extraire/analyser des points de données au format HTML, puis les convertir au format CSV ? Ce post vous aidera à mettre les choses au point.
Nadav Roiter - Bright Data content manager and writer
Nadav Roiter | Data Collection Expert
14-Aug-2022

Dans cet article nous parlerons des points suivants :

Qu’est-ce que Java ?  

Java est un langage de programmation open-source développé avec la devise « Write Once, run Anywhere ». Cela signifie que tant qu’un programme prend en charge Java, il n’est pas nécessaire de réécrire des scripts. Il s’agit d’un langage particulièrement utile pour les programmeurs habitués à C et à C++, car la syntaxe de Java est très similaire.  

Voici quelques-uns des principaux avantages de Java :

  • Il s’agit d’un programme extrêmement populaire, ce qui signifie qu’il existe une grande communauté en ligne qui peut vous aider à faire votre travail et à résoudre des problèmes. De plus, une documentation très fournie est disponible, ce qui rend l’utilisation de Java beaucoup plus facile.
  • Java possède des capacités dynamiques, notamment en ce qui concerne la « modification du code d’exécution », par exemple.
  • Java est open-source, ce qui signifie qu’il est compatible avec des plateformes, très diverses, ce qui permet d’utiliser différentes API (Application Programming Interface).

Ceux d’entre vous qui souhaitent installer manuellement Java sur leur PC Windows peuvent se rendre sur la page officielle de téléchargement manuel.  

Le web scraping avec Java

 

Si certains préfèrent utiliser Selenium pour faire du web scraping ou collecter des données avec Beautiful Soup, une autre option populaire est d’utiliser Java pour le web scraping. Voici un guide étape par étape sur la façon d’y parvenir facilement.  

Avant de commencer, assurez-vous que les éléments suivants sont configurés sur votre ordinateur afin que l’environnement soit optimal pour le web scraping :

  • Java11 – il existe des versions plus avancées mais cela reste de loin la version la plus populaire parmi les développeurs.  
  • Maven – c’est un moteur de production utilisé notamment pour la gestion des dépendances.  
  • IntelliJ IDEA – IntelliJ IDEA est un environnement de développement intégré pour le développement de logiciels en Java.  
  • HtmlUnit – il s’agit d’un simulateur d’activité de navigateur (par exemple, simulation de soumission de formulaire).  

Vous pouvez vérifier les installations à l’aide des commandes suivantes :

  • ’version -java’  
  • ‘vn -v’  

Étape 1 : inspectez votre page cible

 

Rendez-vous sur le site cible sur lequel vous souhaitez collecter des données, cliquez n’importe où avec le bouton droit de la souris, puis cliquez sur « Inspecter l’élément » pour accéder à la « console du développeur », ce qui vous permet d’accéder au code HTML du site.

Étape 2 : commencez le scraping du code HTML

 

Ouvrez IntelliJ IDEA et créez un projet Maven :

les projets Maven contiennent un fichier pom.xml. Accédez au fichier pom.xml et configurez d’abord la version du JDK pour votre projet :

<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>11</maven.compiler.source>
		<maven.compiler.target>11</maven.compiler.target>
	</properties>

Puis, puisque nous allons utiliser htmlunit, ajoutez la dépendance « htmlunit » au fichier pom.xml de la manière suivante :

<dependencies>
		<dependency>
			<groupId>net.sourceforge.htmlunit</groupId>
			<artifactId>htmlunit</artifactId>
			<version>2.63.0</version>
		</dependency>
	</dependencies>

Nous sommes maintenant prêts à commencer à écrire la première classe Java. Commencez par créer un nouveau fichier source Java :

Nous devons créer une méthode principale pour démarrer notre application. Créez la méthode principale comme ceci :

   public static void main(String[] args) throws IOException {
   }

L’application commence par cette méthode. C’est le point d’entrée de l’application. Vous pouvez maintenant envoyer une requête HTTP en utilisant les importations HtmlUnit comme ceci :

   import com.gargoylesoftware.htmlunit.*;
   import com.gargoylesoftware.htmlunit.html.*;
   import java.io.IOException;
   import java.util.List;

Créez maintenant un WebClient en définissant les options comme suit :

	private static WebClient createWebClient() {
		WebClient webClient = new WebClient(BrowserVersion.CHROME);
		webClient.getOptions().setThrowExceptionOnScriptError(false);
		webClient.getOptions().setCssEnabled(false);
	           webClient.getOptions().setJavaScriptEnabled(false);
		return webClient;
	}

Étape 3 : extrayez/analysez les données HTML

 

Nous allons maintenant extraire les données cibles de prix qui nous intéressent. Pour ce faire, nous allons utiliser les commandes intégrées HtmlUnit suivantes. Voici à quoi cela ressemblerait pour les points de données relatifs au « product price » :  

		WebClient webClient = createWebClient();
	    
		try {
			String link = "https://www.ebay.com/itm/332852436920?epid=108867251&hash=item4d7f8d1fb8:g:cvYAAOSwOIlb0NGY";
			HtmlPage page = webClient.getPage(link);
			
			System.out.println(page.getTitleText());
			
			String xpath = "//*[@id=\"mm-saleDscPrc\"]";			
			HtmlSpan priceDiv = (HtmlSpan) page.getByXPath(xpath).get(0);			
			System.out.println(priceDiv.asNormalizedText());
			
			CsvWriter.writeCsvFile(link, priceDiv.asNormalizedText());
			
		} catch (FailingHttpStatusCodeException | IOException e) {
			e.printStackTrace();
		} finally {
			webClient.close();
		}	

Pour obtenir le XPath de l’élément désiré, utilisez la console du développeur. Dans la console du développeur, cliquez avec le bouton droit de la souris sur la section sélectionnée, puis cliquez sur « Copy XPath ». Cette commande copie la section sélectionnée en tant qu’expression XPath :

Les pages web contiennent des liens, du texte, des graphiques et des tableaux. Si vous sélectionnez le XPath d’un tableau, vous pouvez l’exporter au format CSV et effectuer d’autres calculs et analyses avec des programmes tels que Microsoft Excel. Dans l’étape suivante, nous allons nous pencher sur l’exportation d’un tableau sous forme de fichier CSV.

Étape 4 : exportation des données

 

Maintenant que les données ont été analysées, nous pouvons les exporter au format CSV pour les analyser de manière plus approfondie. Ce format peut être préféré à d’autres par certains professionnels, puisqu’il peut être facilement ouvert/affiché dans Microsoft Excel. Voici les lignes de commande à utiliser pour ce faire :

	public static void writeCsvFile(String link, String price) throws IOException {
		
		FileWriter recipesFile = new FileWriter("export.csv", true);

		recipesFile.write("link, price\n");

		recipesFile.write(link + ", " + price);

		recipesFile.close();
	}

Au final

 

Java peut être un moyen efficace pour les programmeurs, les spécialistes des données et les équipes d’experts d’accéder aux points de données cibles dont leur entreprise a besoin. Mais l’utilisation de Java pour le web scraping peut être une tâche très laborieuse. C’est pourquoi de nombreuses entreprises ont décidé d’automatiser entièrement leurs opérations de collecte de données. En utilisant un outil tel que le Web Scraper IDE, n’importe quel employé d’une entreprise peut désormais collecter les données dont il a besoin sans aucune compétence en codage. Il lui suffit de choisir son site cible et l’ensemble de données recherché, puis de sélectionner la fréquence de collecte, le format et le mode de livraison souhaités.  

Nadav Roiter - Bright Data content manager and writer
Nadav Roiter | Data Collection Expert

Nadav Roiter is a data collection expert at Bright Data. Formerly the Marketing Manager at Subivi eCommerce CRM and Head of Digital Content at Novarize audience intelligence, he now dedicates his time to bringing businesses closer to their goals through the collection of big data.

Vous pourriez aussi être intéressé par

Data delivering

Pourquoi recourir à des proxys pour utiliser des services de streaming ?

Les services de streaming sont aujourd’hui plus populaires que jamais, notamment dans le domaine du gaming et de la vidéo.
Python web scraping guide

Le web scraping avec Python : guide pour débutants

Apprenez à faire du web scraping avec Python afin de recueillir rapidement des données sur plusieurs sites web, ce qui vous permet d’économiser du temps et des efforts.

Le scraping de données en temps réel

La technologie du web scraping, c’est-à-dire de la collecte automatisée de gros volumes de données publiques sur Internet, n’est plus à présenter. Diverses sociétés proposent des services de web scraping et un nombre croissant d’entreprises y recourent désormais. Cependant, le web scraping peut être utilisé de différentes manières : ainsi, certains utilisateurs peuvent se contenter de […]

Les 9 plus grands mythes au sujet du web scraping

Le web scraping a mauvaise réputation parce qu’il peut être utilisé à des fins malveillantes. Mais le web scraping peut également être utilisé à bon escient ! Dans ce post, nous allons dissiper quelques mythes répandus sur le web scraping afin que vous puissiez comprendre comment cette technologie peut être utilisée à bon escient
Youtube Scraper

L’importance du web scraping pour le commerce en ligne

Nous assistons aujourd’hui à un changement de paradigme technologique accompagné d’innovations qui conduisent les entreprises à repenser leurs pratiques. Internet a pris le pas sur l’environnement
Web scraping with PHP

Le web scraping avec PHP : un guide pas-à-pas

Apprenez à créer et à programmer facilement votre propre web scraper en PHP, à partir de zéro.
What is alternative data

Que sont les données alternatives et comment les utiliser ?

Les sociétés d’investissement surveillent les médias sociaux, les moteurs de recherche ainsi que les données de demande des consommateurs, et reçoivent des alertes en temps réel lorsque les entreprises de leur portefeuille sont mentionnées. Voici comment.
How Web Scraping in Microsoft Excel Works - A Detailed Guide

Comment fonctionne le web scraping dans Microsoft Excel – guide détaillé

Voici un guide pas à pas rapide et facile sur la façon d’exécuter une requête de données sur le web, directement à partir de votre feuille de calcul Microsoft Excel