Meerdere pagina's met resultaten van de website trekken

Status
Niet open voor verdere reacties.

Marty1970

Nieuwe gebruiker
Lid geworden
2 aug 2020
Berichten
2
Hallo allemaal,
Compleet nieuw met deze materie ben ik begonnen aan VBA om informatie van een website af te halen en in een Exceldocument te krijgen met als doel ermee te gaan rekenen.
Wat ik tot nu toe heb, krijgt enkel de eerste pagina van 20 rijen als resultaat. Op de webpagina waar ik de informatie vandaan wil halen, zijn 377 pagina's met resultaten.

Dit is wat ik heb:
----------------------------------------------------------------------------------------------------------
Sub Macro3()
'
' Macro3 Macro
'
'Volgende tabblad
Sheets("Finviz_bysector").Select
Cells.Select
Selection.ClearContents
Range("A1").Select '

Web_URL = "https://finviz.com/screener.ashx?v=121&r=1"
Set HTML_Content = CreateObject("htmlfile")
With CreateObject("msxml2.xmlhttp")
.Open "GET", Web_URL, False
.send
HTML_Content.body.innerHTML = .responseText 'this is the highlighted part for the error
End With
Column_Num_To_Start = 1
iRow = 2
iCol = Column_Num_To_Start
iTable = 0
For Each Tab1 In HTML_Content.getElementsByTagName("table")
With HTML_Content.getElementsByTagName("table")(iTable)
For Each Tr In .Rows
For Each Td In Tr.Cells
Sheets("Finviz_bysector").Cells(iRow, iCol).Select
Sheets("Finviz_bysector").Cells(iRow, iCol) = Td.innerText
iCol = iCol + 1
Next Td
iCol = Column_Num_To_Start
iRow = iRow + 1
Next Tr
End With
iTable = iTable + 1
iCol = Column_Num_To_Start
iRow = iRow + 1
Next Tab1
'
End Sub
----------------------------------------------------------------------------------------
Dit geeft in het excel werkblad vanaf rij 50 de informatie die ik eigenlijk wil hebben. Echter, dit is slechts pagina 1 van de 377
In de internet browser is de eerste pagina "https://finviz.com/screener.ashx?v=121&r=1"
Als je in de browser op "next" klikt, is de volgende pagina "https://finviz.com/screener.ashx?v=121&r=21"
De daaropvolgende pagina is "https://finviz.com/screener.ashx?v=121&r=41" enz enz.

Wat ik graag zou willen bereiken is:
1) dat alle pagina's onder elkaar in mijn excel werkblad komen. Ikzelf denk aan een loop met een variabele die 1, 21,41,61,81 enz enz doet totdat het einde is bereikt.
2) indien mogelijk enkel de rijen met de data van de aandelen, dus zoals rij 50 t/m 70 en dat hij dus verder gaat met rij 51 en de informatie van elke volgende pagina netjes aansluit.

Ik hoop dat iemand met dit mooie weer zin en tijd heeft om hiernaar te kijken. Alvast heel hartelijk bedankt voor alle tips!
Groetjes,
Marty
 

Bijlagen

  • voorbeeld.xlsm
    32,1 KB · Weergaven: 12
Met power query kan dat ook, maar daar weet ik te weinig over,
Ik heb jou code aangepast voor de eerste 5 Blz, je kan de code aanpassen naar 377 blz, maar zal even duren voor je alles hebt geporteerd
 

Bijlagen

  • Kopie van(jp) voorbeeld-1.xlsm
    49,2 KB · Weergaven: 14
Bedankt!!

Hallo Jean Paul,

Deze oplossing werkt! Dit is precies wat ik nodig had. Superbedankt!
Groetjes,
Marty
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan