Webquerie met wachtwoordbeveiligde website

Status
Niet open voor verdere reacties.

Sickbock

Gebruiker
Lid geworden
14 jul 2012
Berichten
39
Ik wil van de internetsite voetbal.nl via webquery automatisch een aantal gegevens downloaden. Nu is de genoemde website wachtwoord beschermd. Dit moet dus worden ingevuld om toegang te krijgen naar de ze site. Via de onderstaande code kan ik wel mijn inlognaam en wachtwoord invoeren. Ik slaag er echter niet in om ook daadwerkelijk in te loggen.
Bij de regel ”.document.all("Signinform").submit” gaat het fout.
Ik krijg de foutmelding “Objectvariabele of blokvariabele With is niet ingesteld (Fout 91)”
Weet iemand hiervoor een remedie?


Code:
Sub WebLogin()
Dim ie As Internetexplorer

    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate "http://senioren.voetbal.nl/clubs-competities/mijn/uitslagen/223970#programma"
        Do Until .ReadyState = 4
            DoEvents
        Loop
     End With
        
     With ie
        .document.all.Item("name").Value = "inlognaam"
        .document.all.Item("pass").Value = "wachtwoord"
        .document.all("Signinform").submit
    End With
      
End Sub
 
Code:
Sub WebLogin()
    With CreateObject("InternetExplorer.Application")
        .Navigate "senioren.voetbal.nl/clubs_comp/mijn-teams/competitie/223970#programma"
        .Visible = True
        Do While .Busy Or .readyState <> 4
            DoEvents
        Loop
        With .document.all
            .Item("name").Value = "inlognaam"
            .Item("pass").Value = "wachtwoord"
            .Item("op").Item(1).Click
        End With
    End With
End Sub
misschien is het verstandig wat vertragingen in te bouwen, zodat de site meer tijd krijgt om gegevens bij te werken
jouw url is nog van voor 2012, zie http://www.google.com/url?sa=t&rct=...UkknMGbcr4JE8nw&bvm=bv.43287494,d.ZGU&cad=rja

wat jij wil doen heet webscraping, er is veel geduld, kennis en doorzettingsvermogen voor nodig om alles goed te krijgen

zie ook
http://www.worksheet.nl/forumexcel/afgehandelde-vragen/68942-flesch-readability-excel-2007-a.html
http://www.worksheet.nl/forumexcel/downloads/69450-tour-de-france-webquery-alle-uitslagen.html
http://www.worksheet.nl/forumexcel/downloads/75802-vertaal-met-google-translate.html
http://www.helpmij.nl/forum/showthread.php/718427-data-van-internet-in-excel-importeren
http://www.worksheet.nl/forumexcel/vragen/78887-ophalen-gegevens-uit-een-webpagina.html
om te zien welke manieren er allemaal mogelijk zijn

ik ben geen expert maar van iedere site leer ik
 
Laatst bewerkt:
Bedankt Alphamax voor de hulp. De code werkt wel maar lang niet altijd. In zo'n 50% van de pogigen krijg ik de foutmelding:

Fout 438 tijdens uitvoering
Deze eigenschap wordt niet ondersteund door dit object



De code is dan gevorderd tot de regel:

.Item("name").Value = "inlognaam"

Heb je misschien ook een idee hoe dit te ondervangen is?
 
is deze code meer solide?

Code:
Sub WebLogin()
    With CreateObject("InternetExplorer.Application")
        .Navigate "senioren.voetbal.nl/clubs_comp/mijn-teams/competitie/223970#programma"
        .Visible = True
        Do While .busy Or .readystate <> 4
            DoEvents
        Loop
        With .Document
            On Error Resume Next
            If Left(.getelementbyid("knvbuser").innerText, 6) <> "Welkom" Then
                .getelementbyid("edit-name").Value = "inlognaam"
                .getelementbyid("edit-pass").Value = "wachtwoord"
                .getelementbyid("edit-submit").Click
            End If
            On Error GoTo 0
        End With
    End With
End Sub
 
Laatst bewerkt:
Nogmaals bedankt Alphamax voor je snelle hulp. Je hebt me enigszins verrast door de code met de WAIT functie vervangen door de huidige code.
Beide codes laten mij nu bij elke poging inloggen onder mijn inlognaam en wacht woord. Echter wanneer ik reeds ingelogd ben op de site verschijn de foutmelding:

Fout 91 tijdens uitvoering
Objectvariabele of blokvariabele With is niet ingesteld


De code is dan gevorderd tot de regel volgend op de regel:
With .Document

We zijn dus al wel weer iets verder, maar we zijn er nog niet helemaal. Heb je misschien ook voor dit probleem een remedie?
 
Laatst bewerkt:
nieuwe code in bericht#4
de "on error resume next" zorgt ervoor dat elke fout in de code wordt genegeerd
"on error goto 0" maakt dat weer ongedaan
als de site langzaam is, bouw dan enkele wait's in, dit voorkomt verkeerde respons van de site
 
Laatst bewerkt:
De methode om op deze manier in te loggen in een met inlognaam en wachtwoord beveiligde site in te loggen werkt goed. Ik loop echter onmiddellijk daarna tegen het volgende probleem aan. Bij een webquery worden opnieuw inlognaam en wachtwoord gevraagd. Ik kan dus op deze manier nog steeds geen gegevens downloaden. Ik heb echter wel een andere manier gevonden. OP een werkblad voer ik handmatig een webquery uit waarbij ik inlognaam en wachtwoord handmatig invoer. Vervolgens kan ik de door mij gewenste gegevens importeren waarbij ik een basiscel op moet geven waarin ik de gegevens opgeslagen wil hebben. Wanneer ik nu de gegevens wil updaten dan selecteer ik de basiscel en kies voor vernieuwen. Er wordt dan contact gezocht met de internetsite en de gegevens worden vernieuwd naar de laatste stand. Deze laatste handeling kan heel eenvoudig in vba code worden gerealiseerd. De code ziet er dan als volgt uit:

Code:
Cells(1, 1).Select
Selection.QueryTable.Refresh BackgroundQuery:=False

Inlognaam en wachtwoord worden onthouden en hoeven niet opnieuw te worden ingevoerd. Op die manier kan de inhoud van het werkblad voortdurend up to date worden gehouden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan