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.
6 min read

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.  

More from Bright Data

Datasets Icon
Get immediately structured data
Access reliable public web data for any use case. The datasets can be downloaded or delivered in a variety of formats. Subscribe to get fresh records of your preferred dataset based on a pre-defined schedule.
Web scraper IDE Icon
Build reliable web scrapers. Fast.
Build scrapers in a cloud environment with code templates and functions that speed up the development. This solution is based on Bright Data’s Web Unlocker and proxy infrastructure making it easy to scale and never get blocked.
Web Unlocker Icon
Implement an automated unlocking solution
Boost the unblocking process with fingerprint management, CAPTCHA-solving, and IP rotation. Any scraper, written in any language, can integrate it via a regular proxy interface.

Ready to get started?