una que página pestaña para pagina otra misma link internos hipervinculos hipervinculo hacer enlazar enlaces enlace ejemplos dentro como codigo abra html parsing groovy

html - que - ¿Cómo se analiza una página web y se extraen todos los enlaces href?



hipervinculos en html ejemplos (7)

Quiero analizar una página web en Groovy y extraer todos los enlaces href y el texto asociado con ella.

Si la página contenía estos enlaces:

<a href="http://www.google.com">Google</a><br /> <a href="http://www.apple.com">Apple</a>

la salida sería:

Google, http://www.google.com<br /> Apple, http://www.apple.com

Estoy buscando una respuesta Groovy. AKA. ¡La manera fácil!


Analizador Html + Expresiones regulares Cualquier lenguaje lo haría, aunque diría que Perl es la solución más rápida.


Asumiendo XHTML bien formado, sorbe el xml, recolecte todas las etiquetas, encuentre las etiquetas ''a'' e imprima el href y el texto.

input = """<html><body> <a href = "http://www.hjsoft.com/">John</a> <a href = "http://www.google.com/">Google</a> <a href = "http://www..com/"></a> </body></html>""" doc = new XmlSlurper().parseText(input) doc.depthFirst().collect { it }.findAll { it.name() == "a" }.each { println "${it.text()}, ${[email protected]()}" }


El análisis usando XMlSlurper solo funciona si HTMl está bien formado.

Si su página HTMl tiene etiquetas no bien formadas, entonces use regex para analizar la página.

Por <a href="www.google.com"> : <a href="www.google.com">

aquí, ''a'' no está cerrado y, por lo tanto, no está bien formado.

new URL(url).eachLine{ (it =~ /.*<A HREF="(.*?)">/).each{ // process hrefs } }


No conozco Java, pero creo que xpath es mucho mejor que las expresiones regulares clásicas para obtener uno (o más) elementos html.

También es más fácil escribir y leer.

<html> <body> <a href="1.html">1</a> <a href="2.html">2</a> <a href="3.html">3</a> </body> </html>

Con el html anterior, esta expresión "/ html / body / a" listará todos los elementos href.

Aquí hay un buen tutorial paso a paso http://www.zvon.org/xxl/XPathTutorial/General/examples.html



Una rápida búsqueda en Google arrojó una buena apariencia, TagSoup .


Use XMLSlurper para analizar el HTML como un documento XML y luego use el método find con un cierre apropiado para seleccionar las etiquetas a y luego use el método de lista en GPathResult para obtener una lista de las etiquetas. Debería poder extraer el texto como secundarios de GPathResult.