Quiero hacer algo de raspado de pantalla, idealmente usando selectores CSS y no XPath. ¿Hay una biblioteca similar a las de Ruby o Python?¿Hay una biblioteca similar a lxml o nokogiri para Java?
9
A
Respuesta
7
Hay una docena de bibliotecas de screen scraping escritas en Java. Por citar algunos:
- TagSoup - un analizador SAX-compatible escrita en Java que, en lugar de analizar bien formados o XML válido, análisis sintáctico de HTML, ya que se encuentra en el salvaje: desagradable y brutal, aunque bastante a menudo lejos de ser corto. TagSoup es diseñado para personas que tienen que procesar este material usando alguna apariencia de una aplicación racional diseño. Al proporcionar una interfaz SAX, , permite que las herramientas XML estándar sean aplicadas incluso al peor HTML.
- Jericho HTML Parser - Jericho HTML Parser es una biblioteca de Java simple pero potente que permite el análisis y la manipulación de partes de un documento HTML , incluyendo algunas etiquetas del lado del servidor comunes , mientras que reproduce textualmente cualquier HTML no reconocido o no válido. También proporciona funciones de manipulación de formulario HTML de alto nivel . t es ni un analizador de sucesos ni basado en árbol , sino que utiliza una combinación de de búsqueda de texto simple, reconocimiento eficiente de etiqueta y una posición de memoria caché. El texto del documento fuente completo se carga primero en la memoria, y luego solo los segmentos relevantes buscaron para los caracteres relevantes de cada operación de búsqueda .
- HTML Cleaner - HtmlCleaner reordena elementos individuales y produce XML bien formado a partir de HTML sucio. Sigue reglas similares que utilizan la mayoría de los navegadores web para para crear un modelo de objeto de documento. Un usuario de puede proporcionar etiquetas personalizadas y la regla establecida para el filtrado y el equilibrio de etiquetas.
- NekoHTML - NekoHTML es un simple escáner equilibrador HTML y etiquetas que permite a los programadores de aplicaciones documentos analizar HTML y accede a la información usando el estándar XML interfaces. El analizador puede escanear archivos HTML y "corregir" muchos errores comunes que los autores humanos (y de la computadora) hacen al escribir documentos HTML . NekoHTML agrega los elementos principales faltantes ; cierra automáticamente los elementos con etiquetas finales opcionales; y pueden manejar etiquetas de elemento en línea no coincidentes .
y muchos más a HTML Screen Scraping Tools written in Java. Pero estos son los mejores para lidiar con cualquier tipo de contenido (entender todo tipo de basura) como mencioné en this previous answer. Sin embargo, esto podría no ser un problema para ti.
Por las dudas, tal vez revise el hilo Nokogiri pure Java status.
Actualización: Un nuevo proyecto ha sido puesto en libertad (el 2010-01-31), jsoup, que ofrece una selector-syntax to find elements. Vea su sitio web para más detalles y/o this answer de su autor.
1
Puede usar hpricot a través de jRuby. Ver this SO question para más detalles al respecto.
Cuestiones relacionadas
- 1. ¿Hay una biblioteca similar a pyparsing en Java?
- 2. biblioteca similar a readline para Java
- 3. ¿Hay algo similar a Nokogiri para analizar el código de Ruby?
- 4. ¿Hay algo similar a mini-mvc-profiler para Java?
- 5. ¿Hay una biblioteca Java para esteganografía?
- 6. ¿Hay alguna consola interactiva similar a Python para Java?
- 7. ¿Hay algo similar a WebClient.DownloadString en Java?
- 8. ¿Hay alguna herramienta similar a cmake para Java?
- 9. ¿Hay una consola/editor Java similar a GroovyConsole?
- 10. ¿hay algo similar a asp.net mvc para winforms o wpf?
- 11. ¿Hay una extensión o modo en Emacs similar a surround.vim?
- 12. Buena biblioteca similar a STL para C
- 13. Clojure equivalente a la biblioteca lxml de Python?
- 14. ¿Es posible usar OpenCV o una biblioteca similar en Javascript?
- 15. ¿Hay alguna biblioteca ActiveResource como para Java?
- 16. ¿Hay una biblioteca o marco de Java para acceder a los puertos serie?
- 17. ¿Hay una biblioteca de iPhone para proporcionar algo similar a un iPad popover?
- 18. ¿Qué es una buena biblioteca de Java, similar a curses, para aplicaciones de terminal?
- 19. biblioteca Programador en C++ similar a Java cuarzo
- 20. ¿Hay una buena biblioteca de redes Java?
- 21. ¿Hay constantes para los códigos de idioma en java o en una biblioteca java?
- 22. ¿Hay una herramienta similar a YSlow para IE7?
- 23. ¿Hay un puerto Java o equivalente de la biblioteca EventStore?
- 24. ¿Hay una buena biblioteca de cifrado GnuPG para Java/Scala?
- 25. Java - applet web similar a una consola
- 26. ¿Hay una biblioteca Diff para Java que admita Anotar/Culpar?
- 27. ¿Hay alguna clase en Java similar a android.os.Handler en Android?
- 28. ¿Hay una biblioteca AES para clojure?
- 29. ¿Hay una gramática similar a BNF para describir LLVM IR?
- 30. ¿Hay una herramienta similar a distcc para GHC?