Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Extrair hyperlinks de Uma Determinada Classe com selenium?

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
pedrodssj
Colaborador
Colaborador
Mensagens: 18
Registrado em: Qua Nov 06, 2019 2:56 pm

Extrair hyperlinks de Uma Determinada Classe com selenium?

Mensagem por pedrodssj »

para extrair todos os hyperlinks de um site eu ja sei,agora eu gostaria de extrair através de uma determinada classe, abaixo e um exemplo de como executar para extrair todos os hyperlinks:

Código: Selecionar todos

Sub selenium_scrapeHyperlinksWebsite()

    Dim driver As WebDriver: Set driver = New ChromeDriver
    Dim todosOsLinks As WebElements, linkUnico As WebElement
    driver.Get "https://www.academiadasapostasbrasil.com/stats/match/alemanha/bundesliga/colonia/rb-leipzig/3047279"
    Range("B2").Select
   
    Application.Wait Now + TimeValue("00:00:05")
     
    Set todosOsLinks = driver.FindElementsByTag("a")
    
    
    For Each linkUnico In todosOsLinks
        ActiveCell.Offset(0, 1).Value = linkUnico.Attribute("href")
        ActiveCell.Offset(1, 0).Select
    Next linkUnico
  
End Sub

ai eu gostaria de extrair os hyperlinks desta classe:

Código: Selecionar todos

driver.getElementsByClassName("mobile_single_column")(7)
com protocolo http eu consigo extrair através de uma classe,exemplo abaixo:

Código: Selecionar todos

Sub GetVideoPage()

    Dim XMLReq As New MSXML2.XMLHTTP60
    Dim HTMLDoc As New MSHTML.HTMLDocument
    
    Dim VidCatList As MSHTML.IHTMLElement
    Dim VidCats As MSHTML.IHTMLElementCollection
    Dim VidCat As MSHTML.IHTMLElement
    Dim VidCatID As Integer
    
    Dim NextHref As String
    Dim NextURL As String
   
    Range("A1").Select
    
    

    
    
    XMLReq.Open "GET", "https://www.academiadasapostasbrasil.com/stats/match/alemanha/bundesliga/colonia/rb-leipzig/3047279", False
    XMLReq.Send
    
    If XMLReq.Status <> 200 Then
        MsgBox "Problem" & vbNewLine & XMLReg.Status & "" - "" & XMLReq.statusText
        Exit Sub
    End If
    
    
    HTMLDoc.body.innerHTML = XMLReq.responseText
    Set XMLReq = Nothing
    
     
    
    Set VidCatList = HTMLDoc.getElementsByClassName("mobile_single_column")(7)
    Set VidCats = VidCatList.getElementsByTagName("a")
    

    
    Debug.Print VidCats.Length
    
    For VidCatID = 1 To VidCats.Length - 1
        Set VidCat = VidCats(VidCatID)
    
    
       ActiveCell.Offset(0, 1).Value = VidCat.getAttribute("href")
        ActiveCell.Offset(1, 0).Select
       ', VidCat.getAttribute("href")
        
    
    Next VidCatID
    

    
End Sub
[REMOVIDO]


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


pedrodssj
Colaborador
Colaborador
Mensagens: 18
Registrado em: Qua Nov 06, 2019 2:56 pm

Re: Extrair hyperlinks de Uma Determinada Classe com selenium?

Mensagem por pedrodssj »

pedrodssj escreveu: Ter Jun 02, 2020 1:08 pm para extrair todos os hyperlinks de um site eu ja sei,agora eu gostaria de extrair através de uma determinada classe, abaixo e um exemplo de como executar para extrair todos os hyperlinks:

Código: Selecionar todos

Sub selenium_scrapeHyperlinksWebsite()

    Dim driver As WebDriver: Set driver = New ChromeDriver
    Dim todosOsLinks As WebElements, linkUnico As WebElement
    driver.Get "https://www.academiadasapostasbrasil.com/stats/match/alemanha/bundesliga/colonia/rb-leipzig/3047279"
    Range("B2").Select
   
    Application.Wait Now + TimeValue("00:00:05")
     
    Set todosOsLinks = driver.FindElementsByTag("a")
    
    
    For Each linkUnico In todosOsLinks
        ActiveCell.Offset(0, 1).Value = linkUnico.Attribute("href")
        ActiveCell.Offset(1, 0).Select
    Next linkUnico
  
End Sub

ai eu gostaria de extrair os hyperlinks desta classe:

Código: Selecionar todos

driver.getElementsByClassName("mobile_single_column")(7)
com protocolo http eu consigo extrair através de uma classe,exemplo abaixo:

Código: Selecionar todos

Sub GetVideoPage()

    Dim XMLReq As New MSXML2.XMLHTTP60
    Dim HTMLDoc As New MSHTML.HTMLDocument
    
    Dim VidCatList As MSHTML.IHTMLElement
    Dim VidCats As MSHTML.IHTMLElementCollection
    Dim VidCat As MSHTML.IHTMLElement
    Dim VidCatID As Integer
    
    Dim NextHref As String
    Dim NextURL As String
   
    Range("A1").Select
    
    

    
    
    XMLReq.Open "GET", "https://www.academiadasapostasbrasil.com/stats/match/alemanha/bundesliga/colonia/rb-leipzig/3047279", False
    XMLReq.Send
    
    If XMLReq.Status <> 200 Then
        MsgBox "Problem" & vbNewLine & XMLReg.Status & "" - "" & XMLReq.statusText
        Exit Sub
    End If
    
    
    HTMLDoc.body.innerHTML = XMLReq.responseText
    Set XMLReq = Nothing
    
     
    
    Set VidCatList = HTMLDoc.getElementsByClassName("mobile_single_column")(7)
    Set VidCats = VidCatList.getElementsByTagName("a")
    

    
    Debug.Print VidCats.Length
    
    For VidCatID = 1 To VidCats.Length - 1
        Set VidCat = VidCats(VidCatID)
    
    
       ActiveCell.Offset(0, 1).Value = VidCat.getAttribute("href")
        ActiveCell.Offset(1, 0).Select
       ', VidCat.getAttribute("href")
        
    
    Next VidCatID
    

    
End Sub
[REMOVIDO]

eu como faz para somente extrair os hyperlink da classe solicitada com selenium me ajudem por favor!!!!


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: Extrair hyperlinks de Uma Determinada Classe com selenium?

Mensagem por Raygsson »

Desta forma:
Set todosOsLinks = driver.FindElementByClass("mobile_single_column").FindElementsByTag("a")
Trouxe isto:

Código: Selecionar todos

https://www.academiadasapostasbrasil.com/redirect/bet365/89339474/2582237/0
https://www.academiadasapostasbrasil.com/redirect/bet365/89339474/2582237/1
https://www.academiadasapostasbrasil.com/redirect/bet365/89339474/2582237/3
https://www.academiadasapostasbrasil.com/redirect/bet365/89339474/2582237/2
https://www.academiadasapostasbrasil.com/redirect/betfair/29816892/170531011/0
https://www.academiadasapostasbrasil.com/redirect/betfair/29816892/170531011/1
https://www.academiadasapostasbrasil.com/redirect/betfair/29816892/170531011/3
https://www.academiadasapostasbrasil.com/redirect/betfair/29816892/170531011/2
https://www.academiadasapostasbrasil.com/redirect/rivalo/30870280/30870280-0/0
https://www.academiadasapostasbrasil.com/redirect/rivalo/30870280/30870280-0/1
https://www.academiadasapostasbrasil.com/redirect/rivalo/30870280/30870280-0/3
https://www.academiadasapostasbrasil.com/redirect/rivalo/30870280/30870280-0/2
https://www.academiadasapostasbrasil.com/redirect/bet365/89339474/2582243/0
https://www.academiadasapostasbrasil.com/redirect/bet365/89339474/2582243/1
https://www.academiadasapostasbrasil.com/redirect/bet365/89339474/2582243/2
https://www.academiadasapostasbrasil.com/redirect/betfair/29816892/170531021/0
https://www.academiadasapostasbrasil.com/redirect/betfair/29816892/170531021/1
https://www.academiadasapostasbrasil.com/redirect/betfair/29816892/170531021/2
https://www.academiadasapostasbrasil.com/redirect/rivalo/30870280/30870280-1/0
https://www.academiadasapostasbrasil.com/redirect/rivalo/30870280/30870280-1/1
https://www.academiadasapostasbrasil.com/redirect/rivalo/30870280/30870280-1/2


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder