Récupérer une phrase sur un site internet | ||
---|---|---|
Inscription: 02/10/2008
Messages:
56
Système d'exploitation: PC Version Excel utilisée: 365 |
Posté le : 30-05-2023 17h26
Bonjour,
Il y a quelques années (25 c'est quelques non? ^^), j'avais fait une demande (la première y en a eu d'autres après) pour la récupération de données sur un site internet. Mais tout à changé et si à l'époque j'avais réussi a bidouiller quelques bricoles ce n'est vraiment plus le cas maintenant.
Déjà à l'époque je pouvais donner le lien de la page directement et c'était bon.
www.dl-ligue.com
www.zupimages.net/up/23/21/uxgv.jpg Ce qui nous amène sur une nouvelle page ou il faudrait cliquer sur l'id A9 www.zupimages.net/up/23/21/q08v.jpg
On arrive enfin sur la page qui nous intéresse. Sur le name A1 il faudrait sélectionner la value 2 www.zupimages.net/up/23/21/4m83.jpg
Dans le name A3 il faudrait mettre le premier numéro de la colonne A du classeur Valider en cliquant sur le bouton id A4
www.zupimages.net/up/23/21/dco6.jpg www.zupimages.net/up/23/21/8rn6.jpg
Et dans la feuille 2 du classeur récupérer le numéro et le message correspondant qui s'affiche (id tzA5) www.zupimages.net/up/23/21/qywc.jpg
Si le numéro n'existe pas un pop up s'ouvre en indiquant que le numéro n'est pas trouvé www.zupimages.net/up/23/21/7gc2.jpg
Quand on le valide on obtient cela www.zupimages.net/up/23/21/bgm0.jpg
La ce n'est pas nécessaire de le récupérer mais ça serait assez simple de filtrer ce résultat et de le supprimer dans la page 2 du classeur.
J'espère avoir été assez clair et que tu pourras, comme à l'époque, me faire quelque chose de génial ^^
Merci d'avance.
PS: Désolé pour les liens des images je n'ai pas trouvé comment faire autrement. |
|
|
Re: Récupérer une phrase sur un site internet | ||
---|---|---|
Inscription: 02/10/2008
Messages:
56
Système d'exploitation: PC Version Excel utilisée: 365 |
Posté le : 31-05-2023 11h38
J'avance un peu ^^
J'ai réussi a contourner le problème de l'identifiant de session.
Sub Excel_Pratique() navigate = "www.dl-ligue.com/DL-ligue/menu_CDF/1BEAAJ_V2xEMAA" Shell ("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe -url " & navigate) End Sub Ça fonctionne parfaitement bien youhou!!!
J'ai essayé ça Sub Excel_Pratique() navigate = "www.dl-ligue.com/DL-ligue/menu_CDF/mAYAAPkG4hEGAA" Shell ("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe -url " & navigate) Dim element As WebElement Set element = FindElementByID("A9") element.Click End Sub Et vous savez quoi??? je continu de chercher ;)
[EDIT]
Edité par Icedarts le 31/05/2023 13:23:56
|
|
|
Re: Récupérer une phrase sur un site internet | ||
---|---|---|
Inscription: 02/10/2008
Messages:
56
Système d'exploitation: PC Version Excel utilisée: 365 |
Posté le : 31-05-2023 21h31
Grande avancée aujourd'hui.
Sub test() Dim IE As Object Dim IEdoc As Object Dim DOCelement As Object Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate ("www.dl-ligue.com") Call pause Do Until IE.ReadyState = 4 DoEvents Loop Set IEdoc = IE.document Set DOCelement = IEdoc.getElementsByName("A3").Item DOCelement.Value = "48001" Set DOCelement = IEdoc.getelementsbytagname("button")(12) 'Forms(0) DOCelement.Click Set IE = Nothing End Sub Sub pause() Application.Wait Now() + TimeValue("00:00:10") End Sub Prochaine étape dire à la macro de prendre les valeurs pour "A3" dans la première colonne de la première feuille du classeur et de les tester un par un puis de copier coller le résultat dans la première colonne de la feuille 2.
Ça ne va pas être une mince affaire ^^ |
|
|
Re: Récupérer une phrase sur un site internet | ||
---|---|---|
Inscription: 02/10/2008
Messages:
56
Système d'exploitation: PC Version Excel utilisée: 365 |
Posté le : 31-05-2023 22h06
J'ai encore avancé un peu mais la je bloque. Sub test() Dim IE As Object Dim IEdoc As Object Dim DOCelement As Object Static L As Long Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate ("www.dl-ligue.com") Call pause Do Until IE.ReadyState = 4 DoEvents Loop Set IEdoc = IE.document If Cells(1, 1) Then L = 0 L = L + 1 With DOCelement Set DOCelement = IEdoc.getElementsByName("A3").Item DOCelement.Value = Cells(L, 1).Text Set DOCelement = IEdoc.getelementsbytagname("button")(12) DOCelement.Click End With If Cells(L + 1, 1) <> "" Then MsgBox ("Traitement terminé !") Set IE = Nothing End Sub Sub pause() Application.Wait Now() + TimeValue("00:00:10") End Sub Je n'arrive pas a faire comprendre à la macro qu'après avoir testé le numéro en A1 il faut qu'elle passe à A2 puis A3 etc etc jusqu'à ce que la colonne soit vide. |
|
|
Re: Récupérer une phrase sur un site internet | ||
---|---|---|
Inscription: 02/10/2008
Messages:
56
Système d'exploitation: PC Version Excel utilisée: 365 |
Posté le : 05-06-2023 14h12
Bonjour a tous,
Sub recup() Dim IE As Object Dim IEdoc As Object, Res As Object Dim DOCelement As Object, FrameLeftDoc As Object Dim Championnat As Object, NumEquipe As Object, btnValider As Object Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate ("www.dl-ligue.com") WaitIE IE Set IEdoc = IE.document Set FrameLeftDoc = IEdoc.frames("leftframe").document Set DOCelement = FrameLeftDoc.All("M21") DOCelement.Click WaitIE IE Set IEdoc = IE.document Set FrameLeftDoc = IEdoc.frames("leftframe").document Set DOCelement = FrameLeftDoc.All("A9") DOCelement.Click WaitIE IE Set IEdoc = IE.document Set Championnat = IEdoc.All("A1") Championnat.Value = "2" 'Choix menu déroulant Dim Derlig& Derlig = Range("A" & Rows.Count).End(xlUp).Row For i = 1 To Derlig If Cells(i, 1) Then With DOCelement Set DOCelement = IEdoc.getElementsByName("A3").Item DOCelement.Value = Cells(i, 1).Text Set btnValider = IEdoc.All("A4") btnValider.Click WaitIE IE Application.Wait Now() + TimeValue("00:00:01") Set Res = IEdoc.All("tzA5") Debug.Print Res.innerText End With End If Next i If Cells(i, 1) <> "" Then MsgBox ("Traitement terminé !") If Cells(L + 1, 1) <> "" Then MsgBox ("Traitement terminé !") Application.Wait Now() + TimeValue("00:00:10") IE.Quit Set IE = Nothing End Sub Sub WaitIE(IE As Object) 'On boucle tant que la page n'est pas totalement chargée Do Until Not IE.Busy And IE.readyState = 4 Application.Wait Now() + TimeValue("00:00:01") DoEvents Loop End Sub
|
|
|
Re: Récupérer une phrase sur un site internet | ||
---|---|---|
Inscription: 02/10/2008
Messages:
56
Système d'exploitation: PC Version Excel utilisée: 365 |
Posté le : 05-06-2023 18h36
Grosse amélioration du code.
Sub recup() Dim driver As WebDriver Dim LeftFrame As WebElement, Lien As WebElement Dim Championnat As WebElement, NumEquipe As WebElement, NumJoueur As WebElement Dim btnConsult As WebElement, btnValider As WebElement, Res As WebElement Dim i As Long, Infos() As String Set driver = New WebDriver driver.Edge "D:\OneDrive\Bureau\webdriver\msedgedriver.exe" driver.OpenBrowser driver.SetTimeouts 30000, 30000, 10000 driver.NavigateTo "www.dl-ligue.com" driver.MaximizeWindow Set LeftFrame = driver.FindElement(name, "leftframe") driver.SwitchToFrame LeftFrame Set Lien = driver.FindElement(ID, "M21") Lien.Click Set btnConsult = driver.FindElement(ID, "A9") btnConsult.Click Set Championnat = driver.FindElement(ID, "A1") Set NumJoueur = driver.FindElement(ID, "A2") Set NumEquipe = driver.FindElement(ID, "A3") Set btnValider = driver.FindElement(ID, "A4") Set Res = driver.FindElement(ID, "tzA5") Championnat.SendKeys "Indiv" On Error Resume Next For i = 1 To 200 NumJoueur.Clear NumJoueur.SendKeys CStr(Cells(i, 1).value) btnValider.Click If InStr(1, Res.GetText, "%1") Then Debug.Print CStr(NumJoueur.GetProperty("value")), " : ", " - " Else Infos = Split(Res.GetText, vbCrLf) Debug.Print CStr(NumJoueur.GetProperty("value")) + " : " + _ Infos(0) + " -> " + Infos(1) End If Next i On Error GoTo 0 Application.Wait Now() + TimeValue("00:00:2") driver.MinimizeWindow driver.CloseBrowser driver.Quit Set driver = Nothing End Sub mais la il a fallu installer selenium et le webdriver d'edge. |
|
|