75 votes

Raclage Web avec Java

Je ne parviens pas à trouver un bon site Web en grattant une API basée sur Java. Le site que je dois gratter ne fournit pas non plus d’API; Je souhaite parcourir toutes les pages Web en utilisant un identifiant de page et extraire les titres HTML / autres éléments de leurs arborescences DOM.

Existe-t-il d'autres moyens que le raclage Web?

Merci

101voto

Wajdy Essam Points 2215

extraire le titre n’est pas difficile, et vous avez beaucoup d’options (cherchez ici dans SO pour HTML Parsers en Java )

l'un d'eux est use: http://jsoup.org/

vous pouvez naviguer dans la page avec DOM si vous connaissez la structure de la page: http://jsoup.org/cookbook/extracting-data/dom-navigation

c'est une bonne bibliothèque et je l'utilise dans mes derniers projets.

22voto

KJW Points 2182

Votre meilleur pari est d’utiliser Selenium Web Driver car il

  1. Fournit un retour visuel au codeur (voyez votre action en cours, voyez où elle s'arrête)
  2. Précis et cohérent car il contrôle directement le navigateur que vous utilisez.
  3. Lent. Ne frappe pas les pages Web comme HtmlUnit, mais parfois vous ne voulez pas frapper trop vite.

    Htmlunit est rapide mais horrible à manipuler Javascript et AJAX.

15voto

Beschi Points 67

HTMLUnit peut être utilisé pour le Web, il prend en charge l’appel de pages, le remplissage et la soumission de formulaires. Je l'ai utilisé dans mon projet. C'est une bonne bibliothèque java pour le scraping. lire ici pour plus

5voto

user1374041 Points 41

mécaniser pour Java serait un bon choix pour cela, et comme Wadjy Essam l'a mentionné, il utilise JSoup pour HMLT. mécanize est un client HTTP / HTML complexe qui prend en charge la navigation, la soumission de formulaires et le grattage de pages.

http://gistlabs.com/software/mechanize-for-java/ (et le GitHub ici https://github.com/GistLabs/mechanize )

1voto

Riduidel Points 13456

Je vous suggère une combinaison de Groovy et HtmlUnit . Pour une gestion de niveau inférieur, vous pouvez utiliser HttpBuilder .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X