Récupérer les données d'un site web

mathi974

XLDnaute Nouveau
Bonjour à tous,

J'aimerais récupérer les données d'un site web a partir d'un programme VBA excel 2007 qui est protégé par un identifiant et un mot de passe, j'ai pu avec un programme VBA trouvé sur internet réussir a écrire automatiquement l'identifiant et le mot de passe, cela me permet d'arriver sur une nouvelle page.

Mon problème est que je voudrais que le programme clique sur un lien de la nouvelle page et je ne sais pas comment m'y prendre pour qu'il le fasse seul pour que j'arrive sur la page que je voudrais récupérer les données


Ci dessous le programme pour entrer sur la première page

Sub PiloterInternet()
Const MY_URL As String = "http://"
Const IDENTIFIANT As String = "123"
Const PASS As String = "123456"
Dim IE As Object 'SHDocVw.InternetExplorer
Set IE = CreateObject("InternetExplorer.Application")
With IE
.silent = False
.Navigate MY_URL
Do Until .ReadyState = 4
DoEvents
Loop
.document.all("identi").Value = IDENTIFIANT
.document.all("pass").Value = PASS
.document.all("submit").Click
.Visible = True

End With
Set IE = Nothing
End Sub

Quand je recherche sur la nouvelle page les données de l'objet que je veux cliquer j'ai:
id = apy1m0i2ITD

Malheureusement je ne peux pas mettre l'adresse du site car c'est un outil d'une entreprise mais si vous pourriez m'orienter pour réussir a compléter le programme.

S'il vous plait,

Merci,
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données d'un site web

Bonjour à tous

mathi974
Sans voir le code HTML de la page en question, difficile d'aller plus loin.

Essayes en passant par une requete web en étant déjà connecté ( Voir dans le menu Données/Données Externes)
 

mathi974

XLDnaute Nouveau
Re : Récupérer les données d'un site web

Salut staple6000,

Merci pour ta réponse,

J'ai déjà essayé de faire sa, sa fonctionne mais juste quand je le fais puis dés que j'éteins l'ordinateur et que je le rallume il se connecte il m'envoie un message et me dis qu'il n'a pas pu se connecter.

Ou quand j'utulise l'enregistreur de macro, il se connecte au site mais ne renvoie pas de donnée.

Comment ferais tu pour un autre site pour naviguer sur plusieurs page s'il te plait? Pour pouvoir cliquer sur des liens différent
Quel code utiliserais-tu?

Cldt,
 

mathi974

XLDnaute Nouveau
Re : Récupérer les données d'un site web

Code HTML pour la nouvelle page sur laquelle j'arrive:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>Synoptique&nbsp;principal</title>
<META HTTP-EQUIV="imageToolbar" content="no">
<script type="text/javascript" language="JavaScript1.2" src="/WEB/LIB.js-232377"></script>
<script type="text/javascript" language="JavaScript1.2" src="/WEB/LIB.js-348164"></script>
<script type="text/javascript" language="JavaScript1.2" src="/WEB/LIB.js-401327"></script>
<script type="text/javascript" language="JavaScript1.2">
gWSiteIdent="AGR3 (PDL+PTR1)";
gWSiteTime="21/07/2012 19:18:43";

function WFnctScript1(){
document.body.topMargin = 0;
document.body.leftMargin = 0;
WGUIInit();

}

function WFnctScript4(){
WDD1();

}

function WFnctScript7(){
if(window.name=="WMain"){
var MyFrCh=WAbsMainFrame().WChoice;
if(MyFrCh){MyFrCh.WFormCopyTo(WAbsMainFrame().WMain.document.forms[0]);}
var MyElem=document.createElement("input");
MyElem.name="Form";
MyElem.value="WAbsMainFrame().gWMainData.Form";
MyElem.type="hidden";
event.srcElement.appendChild(MyElem);
var MyElem=document.createElement("input");
MyElem.name="Args";
MyElem.value="WAbsMainFrame().gWMainData.Args";
MyElem.type="hidden";
event.srcElement.appendChild(MyElem);
}

}
function WAbsMainFrame(){return top;}
function WParentFrame(){var MyF=self;try{while((MyF)&&(MyF.name!="WAName")&&(MyF.name!="WChoice")&&(MyF.name!="WMain")&&(MyF!=top)&&(MyF.parent!=MyF))
{MyF=MyF.parent;}if((MyF)&&(MyF.name=="WAName"))MyF=WAbsMainFrame().WMain; return MyF;}catch(e){}}
</script>

<style type="text/css"> select {font-size:9;} a {text-decoration:none;}</style>
</head>

<BODY style="font-family:Arial;background-color:transparent;"
onLoad="WFnctScript1();" onDragStart="WFnctScript4();">
<span style="z-index:2;position:absolute;top:0px;left:0px;">
<IFRAME marginwidth="0" marginheight="0" src="/WSID0815684171/easy/SYN/SYN_3-5" allowtransparency="true" scrolling="no" frameborder="2" style="width:800px;height:500px;">
</IFRAME></span></body></html>
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données d'un site web

RE

Je ne vois rien dans ce source relatif à
id = apy1m0i2ITD

Par contre je vois qu"un LIB.js est utilisé.

A quoi sert-il ?

Si tu peux diffuser son contenu, diffuses-le ici

Sinon, ne pouvant tester en direct live, on va devoir avancer à tâtons.
En attendant, tu peux utiliser la balsie HTML, ca piquera moins les yeux de lire ton précédent message ;)
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>Synoptique&nbsp;principal</title>
<META HTTP-EQUIV="imageToolbar" content="no">
<script type="text/javascript" language="JavaScript1.2" src="/WEB/LIB.js-232377"></script>
<script type="text/javascript" language="JavaScript1.2" src="/WEB/LIB.js-348164"></script>
<script type="text/javascript" language="JavaScript1.2" src="/WEB/LIB.js-401327"></script>
<script type="text/javascript" language="JavaScript1.2">
gWSiteIdent="AGR3 (PDL+PTR1)";
gWSiteTime="21/07/2012 19:18:43";

function WFnctScript1(){
document.body.topMargin = 0;
document.body.leftMargin = 0;
WGUIInit();

}

function WFnctScript4(){
WDD1();

}

function WFnctScript7(){
if(window.name=="WMain"){
var MyFrCh=WAbsMainFrame().WChoice;
 if(MyFrCh){MyFrCh.WFormCopyTo(WAbsMainFrame().WMai  n.document.forms[0]);}
 var MyElem=document.createElement("input");
 MyElem.name="Form";
 MyElem.value="WAbsMainFrame().gWMainData.Form";
 MyElem.type="hidden";
 event.srcElement.appendChild(MyElem);
 var MyElem=document.createElement("input");
 MyElem.name="Args";
 MyElem.value="WAbsMainFrame().gWMainData.Args";
 MyElem.type="hidden";
 event.srcElement.appendChild(MyElem);
}

}
function WAbsMainFrame(){return top;}
function WParentFrame(){var  MyF=self;try{while((MyF)&&(MyF.name!="WAName")&&(M   yF.name!="WChoice")&&(MyF.name!="WMain")&&(MyF!=to   p)&&(MyF.parent!=MyF))
{MyF=MyF.parent;}if((MyF)&&(MyF.name=="WAName"))My  F=WAbsMainFrame().WMain; return MyF;}catch(e){}}
</script>

<style type="text/css"> select {font-size:9;} a {text-decoration:none;}</style>
</head>

<BODY style="font-family:Arial;background-color:transparent;"
 onLoad="WFnctScript1();" onDragStart="WFnctScript4();">
<span style="z-index:2;position:absolute;top:0px;left:0px;">
<IFRAME marginwidth="0" marginheight="0"  src="/WSID0815684171/easy/SYN/SYN_3-5" allowtransparency="true"  scrolling="no" frameborder="2" style="width:800px;height:500px;">
</IFRAME></span></body></html>
 
Dernière édition:

mathi974

XLDnaute Nouveau
Re : Récupérer les données d'un site web

Bonsoir à vous,

En fait je ne préfère pas mettre le site car se sont des pages privés et je ne pense pas que je puisse les faire partager.

Quand j'ai écrie le id = apy1m0i2ITD je l'avais trouvé avec l'outil développement de IE.
Pour le bouton que je veux cliquer dessus

Je vous joint le code que j'ai en utilisant l'outil de développement, si sa peut vous aider!

Vous connaissez comment un code pour naviguer sur un site puis cliquer sur un lien ?

En fait j'aimerais avoir un modèle pour essayer de le réaliser sur mon cas.

En attendant votre aide,

cldt,
 

Pièces jointes

  • new .zip
    2.5 KB · Affichages: 53

mathi974

XLDnaute Nouveau
Re : Récupérer les données d'un site web

Merci pour ton message,

Oui je suis entrain de lire le lien de david84 et j'essaie de voir se qui pourrait m’intéresser, merci pour ton lien je vais regarder aussi en espérant trouver ce qu'il me faut.

Le code que j'ai mis vous sert-il à quelque chose ou pas du tout?
cldt,
 

mathi974

XLDnaute Nouveau
Re : Récupérer les données d'un site web

J'aurais une autre questions j'essaie d’utiliser les codes de michelxld

Mais quand je lance par exemple ce code:
Sub listeLiensPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence Microsoft Internet Controls
Dim IE As New internetExplorer
Dim x As Integer
Dim maPageHtml As HTMLDocument
IE.Navigate "http://www.excel-downloads.com"
Do Until IE.readyState = READYSTATE_COMPLETE
doEvents
Loop
Set maPageHtml = IE.Document
For x = 0 To maPageHtml.links.Length - 1
Cells(x + 1, 1) = maPageHtml.links(x)
Next
End Sub

excel me dit "type défini par l'utilisateur non définie" pour :

Dim IE as New Internet Explorer

De même pour d'autre code avec :
Dim Cible As HTMLAnchorElement
Dim Doc As HTMLDocument

Apparemment il ne reconnais pas ces variables,

cldt,
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données d'un site web

Re

'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence Microsoft Internet Controls
Il faut donc aller cocher ces références dans VBE 1) faire ALT+F11 puis aller dans le menu Outils/Références et cocher les références ci-dessus indiquées
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 330
Membres
102 862
dernier inscrit
Emma35400