[access 2010, VBA] Login website via XMLHTTP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • nockelyk
  • Registratie: Juli 2007
  • Laatst online: 11-09-2023
Dag iedereen,

Ik ben momenteel aan het proberen een xmlhttp programma te schrijven in Acces.
Het is mijn bedoeling om gegevens van een website te halen en te importeren in mijn databank.

Na lang zoeken sla ik er inmiddels in om gegevens van de website te halen en op te slaan op mijn computer.
Ik zit echter met het probleem dat ik mij moet inloggen op de website, dit lukt me maar niet.
Kunnen jullie mij eventueel goed op weg zetten/helpen?

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub dfdf()
Dim myURL As String
myURL = "http://www.reuters.com/finance/stocks/incomeStatement/detail?stmtType=INC&perType=ANN&symbol=COLG.KA"

Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
With objHttp
        .Open "GET", myURL, True
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" 'hier zit waarschijnlijk een fout
    .Send "loginname = xxxxx&Password = xxxxx" 'of hier
    RespTXT = .ResponseBody
End With

    Set oStream = CreateObject("ADODB.Stream")
    oStream.Open
    oStream.Type = 1
    oStream.Write RespTXT
    oStream.SaveToFile ("F:\test.txt")
    oStream.Close
MsgBox "done"

End Sub


De broncode van de website waarvan ik mijn gegevens wens te halen is (ik heb voor het overzicht maar een selectie van de code weergegeven...):
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<script language="JavaScript" language="Javascript1.1" type="text/javascript">
function validateLoginForm(loginForm){
 if(loginForm != null){
     user = loginForm.elements['loginName'].value;
     if(user == null || user==''){
        alert('Email is required!');
        loginForm.elements['loginName'].focus();
        return false;
     }
     password = loginForm.elements['password'].value;
     if(password == null || password==''){
        alert('Password is required');
        loginForm.elements['password'].focus();
        return false;
     }

    loginForm.submit();
        
    }
 }
function clearEmailAddressAndPassword() {
    var loginNameEle = document.forms['loginForm'].elements['loginName'];
    loginNameEle.value = '';
    loginNameEle.focus();
    var passwordEle = document.forms['loginForm'].elements['password'];
    passwordEle.value = '';
    document.getElementById('notMe').style.display='none';
    document.getElementById('h2LoginHeader').innerHTML='';
    document.getElementById('loginErr').innerHTML="";
  }
</script>

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Het lijkt me niet dat myUrl een wachtwoord met GET (ipv POST) opgestuurd krijgt in de normale situatie. Bij de meeste websites krijg je een cookie van de loginpagina, waarna de normale pagina op te vragen valt. http://objectmix.com/xml-...-vba-xmthttp-cookies.html is dan gerelateerd, als je al een cookie hebt.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

Anoniem: 113297

de meegestuurde requestheader voor htmlformulieren is correct, maar je moet idd POST gebruiken.
vergeet ook niet te checken op httpok na de send.