es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Rascando “href” utilizando Chrome

Escuchante de larga data, primerizo en publicar,

Espero obtener ayuda para extraer el atributo href de un sitio web utilizando Google Chrome. He buscado y probado durante horas y no puedo hacer que el código funcione.

Este es el sitio web: https://pool.pm/addr1qxlxmpqamdnzs9gpgvjnsxehu4pd95a9ddhhcuxadvzv69jjtu4lhppapqxxgtsxweackk6se5m3zp9qkadsu62de8uqrp3dk4/%409e9e948d

Este es un fragmento de código HTML que intento recuperar.

enter image description here

Una de las cosas que he observado es que “topics” devuelve valores vacíos y no obtiene lo que necesito. Por lo tanto, el resto de mi código se vuelve irrelevante. Estoy seguro de que me estoy perdiendo algo fundamental, pero no puedo encontrarlo. Cualquier ayuda sería muy apreciada.

Mi código actualmente es el siguiente:

Option Explicit

Sub openurl()

Dim myurl As String
Dim request As Object
Dim response As String
Dim html As New HTMLDocument
Dim topics As Object
Dim titleElem As Object

myurl = "https://pool.pm/addr1qxlxmpqamdnzs9gpgvjnsxehu4pd95a9ddhhcuxadvzv69jjtu4lhppapqxxgtsxweackk6se5m3zp9qkadsu62de8uqrp3dk4/%409e9e948d"

Set request = CreateObject("MSXML2.XMLHTTP")
request.Open "GET", myurl, False
request.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
request.send
response = StrConv(request.responseBody, vbUnicode)
html.body.innerHTML = response

Set topics = html.getElementsByClassName("hc ah cx s e wc ccx ccy lnk")

Sheets("main").Range("A3").Value = topics.getElementsByTagName("a").href

End Sub

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema puede estar en la línea en la que intentas recuperar el atributo href. En lugar de usar topics.getElementsByTagName("a").href, intenta usar topics(0).href. Esto debería recuperar el atributo href del primer elemento en la colección de topics.

    Además, es posible que desees verificar si el nombre de la clase que estás utilizando para recuperar los topics es correcto. Es posible que el sitio web haya cambiado y que el nombre de la clase ya no exista.

    Aquí tienes el código actualizado:

    Option Explicit
    
    Sub abrirurl()
    
    Dim myurl As String
    Dim request As Object
    Dim response As String
    Dim html As New HTMLDocument
    Dim topics As Object
    Dim titleElem As Object
    
    myurl = "https://pool.pm/addr1qxlxmpqamdnzs9gpgvjnsxehu4pd95a9ddhhcuxadvzv69jjtu4lhppapqxxgtsxweackk6se5m3zp9qkadsu62de8uqrp3dk4/%409e9e948d"
    
    Set request = CreateObject("MSXML2.XMLHTTP")
    request.Open "GET", myurl, False
    request.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
    request.send
    response = StrConv(request.responseBody, vbUnicode)
    html.body.innerHTML = response
    
    Set topics = html.getElementsByClassName("hc ah cx s e wc ccx ccy lnk")
    
    Sheets("main").Range("A3").Value = topics(0).href
    
    End Sub
    

Comments are closed.