Bonjour,
J'aimerai savoir si il est possible de remplir, par programmation, quelques indications pour qu'une page web renvoie les données.
Concrètement, sur cette page dédiée au calcul de plan de vol pour la simulation : http://rfinder.asalink.net/free/, il faut entrer principalement le lieu de départ (ex : LFMT) et l'arrivée (ex : LPPT).
Si cela est réalisable, comment un programme pourrait-il envoyer successivement les 2 informations (LFMT/LPPT) pour obtenir le résultat retourné ?
"Pilotage" d'une page web ?
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: "Pilotage" d'une page web ?
Bonjour,
Il faut voir si un formulaire est renvoyé ou non, si quand tu valide et soumet la page si tu vois
ou quelque chose de similaire, alors tu peut émettre une requête similaire en remplaçant les données qui suivent les =
Mais cela m'étonnerais fortement, ou alors le site est très mal sécurisée.
Il faut voir si un formulaire est renvoyé ou non, si quand tu valide et soumet la page si tu vois
Code : Tout sélectionner
Exemple avec le site du forum :
https://www.purebasic.fr/french/posting.php?mode=reply&f=1&t=17902
Mais cela m'étonnerais fortement, ou alors le site est très mal sécurisée.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: "Pilotage" d'une page web ?
Et donc ? pour l'exemple indiqué http://rfinder.asalink.net/free/ cela n'est pas possible ?
Pour LFMT vers LGIR, j'ai remarqué que l'appui sur FIND ROUTE envoyait à l'adresse :
http://rfinder.asalink.net/free/autoroute_rtx.php
les requêtes suivantes :
id1=LFMT&ic1=&id2=LGIR&ic2=&minalt=FL330&maxalt=FL330&lvl=B&dbid=2001&usesid=Y&usestar=Y&easet=Y&rnav=Y&nats=R&k=813817956
J'ai fait différents assemblages des 2 lignes séparées, par exemple, avec / ou avec ? mais sans succès !
Pour LFMT vers LGIR, j'ai remarqué que l'appui sur FIND ROUTE envoyait à l'adresse :
http://rfinder.asalink.net/free/autoroute_rtx.php
les requêtes suivantes :
id1=LFMT&ic1=&id2=LGIR&ic2=&minalt=FL330&maxalt=FL330&lvl=B&dbid=2001&usesid=Y&usestar=Y&easet=Y&rnav=Y&nats=R&k=813817956
J'ai fait différents assemblages des 2 lignes séparées, par exemple, avec / ou avec ? mais sans succès !
Dernière modification par PhM le lun. 20/janv./2020 14:59, modifié 2 fois.
Re: "Pilotage" d'une page web ?
Il existe de multiples façons de faire.
Recherche sur le net (et dans ce forum et celui us) avec les mots clé WebDriver et Selenium
Tu peux automatiser un navigateur existant ou utiliser un navigateur sans tête (headless browser)
Recherche sur le net (et dans ce forum et celui us) avec les mots clé WebDriver et Selenium
Tu peux automatiser un navigateur existant ou utiliser un navigateur sans tête (headless browser)
Re: "Pilotage" d'une page web ?
C'est possible mais il faudrait que tu nos donnes un début de code.
Tu peux t'inspirer de ça:
et tiens nous au courant.
M.
Tu peux t'inspirer de ça:
Code : Tout sélectionner
EnableExplicit
Procedure.I WriteTextIntoHTMLElement(WebGadgetID.I, ElementName.S, Text.S)
Protected BSTRText.S = Space(128)
Protected Document.IHTMLDocument3
Protected Dispatch.iDispatch
Protected Element.IHTMLElement
Protected InputElement.IHTMLInputElement
Protected Result.I
Protected Value.I
Protected WebBrowser.IWebBrowser2 = GetWindowLongPtr_(GadgetID(WebGadgetID), #GWL_USERDATA)
If WebBrowser\get_Document(@Dispatch) <> #S_OK
Dispatch\Release()
ProcedureReturn #False
EndIf
If Dispatch\QueryInterface(?IID_IHTMLDocument3, @Document) <> #S_OK
Document\Release()
Dispatch\Release()
ProcedureReturn #False
EndIf
If Document\getElementById(ElementName, @Element) <> #S_OK Or Element = 0
Document\Release()
Dispatch\Release()
ProcedureReturn #False
EndIf
If Element\QueryInterface(?IID_IHTMLInputElement, @InputElement) <> #S_OK
Element\Release()
Document\Release()
Dispatch\Release()
ProcedureReturn #False
EndIf
Result = InputElement\put_value(Text)
InputElement\Release()
Element\Release()
Document\Release()
Dispatch\Release()
If Result = #S_OK
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Procedure NavigationCallback(GadgetID.I, URL.S)
If FindString(URL, "LoginButtonClick")
MessageRequester("Info", "Login button was clicked!")
EndIf
EndProcedure
Define HTML.S
Define SelectedFilename.S
HTML + "<html><body><form name='TestForm' action='' method='get'>" + #CR$
HTML + "Your login name: <input name=" + #DQUOTE$ + "Name" + #DQUOTE$
HTML + " type=" + #DQUOTE$ + "text" + #DQUOTE$
HTML + " size=15 maxlength=15>" + #CR$
HTML + "<br>" + #CR$
HTML + "<br>" + #CR$
HTML + "<center>" + #CR$
HTML + "<input type='button' value='Login' onClick='window.location=" + #DQUOTE$ +"LoginButtonClick" + #DQUOTE$ + "'>" + #CR$
HTML + "</center>" + #CR$
HTML + "</form>" + #CR$
HTML + "</body>" + #CR$
HTML + "</html>" + #CR$
OpenWindow(0, 0, 0, 280, 140, "Login form demo", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
WebGadget(0, 5, 5, WindowWidth(0) - 10, WindowHeight(0) - 40, "")
ButtonGadget(1, 20, WindowHeight(0) - 25, 100, 20, "Fill in login name")
ButtonGadget(2, 140, WindowHeight(0) - 25, 120, 20, "Click onto login button")
SetGadgetItemText(0, #PB_Web_HtmlCode, HTML)
SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 1
WriteTextIntoHTMLElement(0, "Name", "JohnSmith")
Case 2
SetGadgetText(0, "javascript:document.TestForm.LoginButtonClick.submit();")
EndSelect
EndSelect
ForEver
End
DataSection
IID_IHTMLDocument3:
Data.L $3050F485
Data.W $98B5, $11CF
Data.B $BB, $82, $00, $AA, $00, $BD, $CE, $0B
IID_IHTMLInputElement:
Data.L $3050F5D2
Data.W $98B5, $11CF
Data.B $BB, $82, $00, $AA, $00, $BD, $CE, $0B
EndDataSection
M.
-
- Messages : 244
- Inscription : jeu. 07/mars/2013 19:02
- Localisation : France Alsace / Espagne Girona
Re: "Pilotage" d'une page web ?
PhM a écrit :Et donc ? pour l'exemple indiqué http://rfinder.asalink.net/free/ cela n'est pas possible ?
Pour LFMT vers LGIR, j'ai remarqué que l'appui sur FIND ROUTE envoyait à l'adresse :
http://rfinder.asalink.net/free/autoroute_rtx.php
les requêtes suivantes :
id1=LFMT&ic1=&id2=LGIR&ic2=&minalt=FL330&maxalt=FL330&lvl=B&dbid=2001&usesid=Y&usestar=Y&easet=Y&rnav=Y&nats=R&k=813817956
J'ai fait différents assemblages des 2 lignes séparées, par exemple, avec / ou avec ? mais sans succès !
En accès directe sur autoroute_rtx.php ca marchera pas il passe par un index.php qui génère le k = "un numéro aléatoire valide un certain temps", il contrôle surement le referer donc de la ou tu viens, si les 2 ne corresponde pas alors nok
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Re: "Pilotage" d'une page web ?
Oui, merci. Je me suis également aperçu de ce k mystérieux et surtout bloquant.
Mais, je viens de trouver un autre site qui est moins regardant et, finalement plus rapide pour le même résultat.
Le site de base : Path Finder : https://vau.aero/route/?va=vau
Et, sa simple requête facilement exploitable pour l'exemple LFMT to LGIR :
https://vau.aero/route/getRoute.php?mul ... t1=&omit2=
dep : LFMT
nat :
airac : 2001
dest : LGIR
rt :
lvl : Hight (H/L/B)
transit :
transit1 :
transit2 :
omit :
omit1 :
omit2 :
Le résultat retourné est un peu mélanger mais tout est la avec comme principal séparateur |
OK#Mediterranee (Montpellier)|Nikos Kazantzakis (Heraklion)||#1118+MARRI Y25 SALIN UY341 BULTO UY342 PADKO UL127 ADITA UZ192 STP UL127 SODRI UM728 DOKAR N604 RUTOM UM601 TRL UJ65 SOKRI J65 SUD UJ65 BAVES++43.5833,3.96139,LFMT,Mediterranee (Montpellier),,,0,|43.3847,4.47417,MARRI,MARRI,SID,118,25.321132635459,|43.2828,4.73014,SALIN,SALIN,Y25,118,12.7436,|43.2736,4.90333,BULTO,BULTO,UY341,93,7.59052,|43.2317,5.33306,PADKO,PADKO,UY342,97,18.9593,|43.2286,5.82886,ADITA,ADITA,UL127,89,21.6899,|43.2267,6.02378,TURIL,TURIL,UZ192,90,8.52771,|43.2195,6.60181,STP,SAINT TROPEZ,UZ192,90,25.2926,116.50|43.1658,7.07306,LERMA,LERMA,UL127,97,20.8774,|43.1047,7.59111,OMARD,OMARD,UL127,98,22.9922,|43.08,7.79333,MERLU,MERLU,UL127,98,8.98959,|43.0131,8.37194,SODRI,SODRI,UL127,97,25.7037,|42.8933,8.67694,RAPUR,RAPUR,UM728,117,15.2086,|42.8081,8.89139,OKROK,OKROK,UM728,117,10.7383,|42.7231,9.10444,RATAP,RATAP,UM728,117,10.6879,|42.5736,9.47483,BTA,BASTIA PORETTA,UM728,117,18.6567,114.15|42.5008,9.75,DOKAR,DOKAR,UM728,108,12.9331,|40.0161,15.8075,INGAB,INGAB,N604,115,311.341,|38.5183,19,RUTOM,RUTOM,N604,118,173.499,|38.3211,19.7436,LASKO,LASKO,UM601,104,36.9289,|38.113,20.5047,KFN,KEFALLINIA,UM601,104,38.0137,115.50|37.4038,22.3403,TRL,TRIPOLIS,UM601,112,96.9753,116.20|36.2578,23.4719,SOKRI,SOKRI,UJ65,139,87.6998,|35.523,24.175,SUD,CHANIA,J65,139,55.8145,108.60|35.4247,24.7269,BAVES,BAVES,UJ65,99,27.6273,|35.3397,25.1803,LGIR,Nikos Kazantzakis (Heraklion),,,0,@1133+MARRI Y25 SALIN UY341 BULTO UY342 PADKO UL127 ADITA UZ192 STP UL127 SODRI UM728 DOKAR N604 RUTOM UM601 KFN UM872 PLH R78 TIPUS++43.5833,3.96139,LFMT,Mediterranee (Montpellier),,,0,|43.3847,4.47417,MARRI,MARRI,SID,118,25.321132635459,|43.2828,4.73014,SALIN,SALIN,Y25,118,12.7436,|43.2736,4.90333,BULTO,BULTO,UY341,93,7.59052,|43.2317,5.33306,PADKO,PADKO,UY342,97,18.9593,|43.2286,5.82886,ADITA,ADITA,UL127,89,21.6899,|43.2267,6.02378,TURIL,TURIL,UZ192,90,8.52771,|43.2195,6.60181,STP,SAINT TROPEZ,UZ192,90,25.2926,116.50|43.1658,7.07306,LERMA,LERMA,UL127,97,20.8774,|43.1047,7.59111,OMARD,OMARD,UL127,98,22.9922,|43.08,7.79333,MERLU,MERLU,UL127,98,8.98959,|43.0131,8.37194,SODRI,SODRI,UL127,97,25.7037,|42.8933,8.67694,RAPUR,RAPUR,UM728,117,15.2086,|42.8081,8.89139,OKROK,OKROK,UM728,117,10.7383,|42.7231,9.10444,RATAP,RATAP,UM728,117,10.6879,|42.5736,9.47483,BTA,BASTIA PORETTA,UM728,117,18.6567,114.15|42.5008,9.75,DOKAR,DOKAR,UM728,108,12.9331,|40.0161,15.8075,INGAB,INGAB,N604,115,311.341,|38.5183,19,RUTOM,RUTOM,N604,118,173.499,|38.3211,19.7436,LASKO,LASKO,UM601,104,36.9289,|38.113,20.5047,KFN,KEFALLINIA,UM601,104,38.0137,115.50|35.8317,23.0419,ETILI,ETILI,UM872,134,183.21,|35.2276,23.6808,PLH,PALEOCHORA,UM872,134,47.8506,114.60|35.1736,24.6356,TIPUS,TIPUS,R78,91,46.9506,|35.3397,25.1803,LGIR,Nikos Kazantzakis (Heraklion),,,0,#
C'est bon pour moi maintenant, merci les gars !
Mais, je viens de trouver un autre site qui est moins regardant et, finalement plus rapide pour le même résultat.
Le site de base : Path Finder : https://vau.aero/route/?va=vau
Et, sa simple requête facilement exploitable pour l'exemple LFMT to LGIR :
https://vau.aero/route/getRoute.php?mul ... t1=&omit2=
dep : LFMT
nat :
airac : 2001
dest : LGIR
rt :
lvl : Hight (H/L/B)
transit :
transit1 :
transit2 :
omit :
omit1 :
omit2 :
Le résultat retourné est un peu mélanger mais tout est la avec comme principal séparateur |
OK#Mediterranee (Montpellier)|Nikos Kazantzakis (Heraklion)||#1118+MARRI Y25 SALIN UY341 BULTO UY342 PADKO UL127 ADITA UZ192 STP UL127 SODRI UM728 DOKAR N604 RUTOM UM601 TRL UJ65 SOKRI J65 SUD UJ65 BAVES++43.5833,3.96139,LFMT,Mediterranee (Montpellier),,,0,|43.3847,4.47417,MARRI,MARRI,SID,118,25.321132635459,|43.2828,4.73014,SALIN,SALIN,Y25,118,12.7436,|43.2736,4.90333,BULTO,BULTO,UY341,93,7.59052,|43.2317,5.33306,PADKO,PADKO,UY342,97,18.9593,|43.2286,5.82886,ADITA,ADITA,UL127,89,21.6899,|43.2267,6.02378,TURIL,TURIL,UZ192,90,8.52771,|43.2195,6.60181,STP,SAINT TROPEZ,UZ192,90,25.2926,116.50|43.1658,7.07306,LERMA,LERMA,UL127,97,20.8774,|43.1047,7.59111,OMARD,OMARD,UL127,98,22.9922,|43.08,7.79333,MERLU,MERLU,UL127,98,8.98959,|43.0131,8.37194,SODRI,SODRI,UL127,97,25.7037,|42.8933,8.67694,RAPUR,RAPUR,UM728,117,15.2086,|42.8081,8.89139,OKROK,OKROK,UM728,117,10.7383,|42.7231,9.10444,RATAP,RATAP,UM728,117,10.6879,|42.5736,9.47483,BTA,BASTIA PORETTA,UM728,117,18.6567,114.15|42.5008,9.75,DOKAR,DOKAR,UM728,108,12.9331,|40.0161,15.8075,INGAB,INGAB,N604,115,311.341,|38.5183,19,RUTOM,RUTOM,N604,118,173.499,|38.3211,19.7436,LASKO,LASKO,UM601,104,36.9289,|38.113,20.5047,KFN,KEFALLINIA,UM601,104,38.0137,115.50|37.4038,22.3403,TRL,TRIPOLIS,UM601,112,96.9753,116.20|36.2578,23.4719,SOKRI,SOKRI,UJ65,139,87.6998,|35.523,24.175,SUD,CHANIA,J65,139,55.8145,108.60|35.4247,24.7269,BAVES,BAVES,UJ65,99,27.6273,|35.3397,25.1803,LGIR,Nikos Kazantzakis (Heraklion),,,0,@1133+MARRI Y25 SALIN UY341 BULTO UY342 PADKO UL127 ADITA UZ192 STP UL127 SODRI UM728 DOKAR N604 RUTOM UM601 KFN UM872 PLH R78 TIPUS++43.5833,3.96139,LFMT,Mediterranee (Montpellier),,,0,|43.3847,4.47417,MARRI,MARRI,SID,118,25.321132635459,|43.2828,4.73014,SALIN,SALIN,Y25,118,12.7436,|43.2736,4.90333,BULTO,BULTO,UY341,93,7.59052,|43.2317,5.33306,PADKO,PADKO,UY342,97,18.9593,|43.2286,5.82886,ADITA,ADITA,UL127,89,21.6899,|43.2267,6.02378,TURIL,TURIL,UZ192,90,8.52771,|43.2195,6.60181,STP,SAINT TROPEZ,UZ192,90,25.2926,116.50|43.1658,7.07306,LERMA,LERMA,UL127,97,20.8774,|43.1047,7.59111,OMARD,OMARD,UL127,98,22.9922,|43.08,7.79333,MERLU,MERLU,UL127,98,8.98959,|43.0131,8.37194,SODRI,SODRI,UL127,97,25.7037,|42.8933,8.67694,RAPUR,RAPUR,UM728,117,15.2086,|42.8081,8.89139,OKROK,OKROK,UM728,117,10.7383,|42.7231,9.10444,RATAP,RATAP,UM728,117,10.6879,|42.5736,9.47483,BTA,BASTIA PORETTA,UM728,117,18.6567,114.15|42.5008,9.75,DOKAR,DOKAR,UM728,108,12.9331,|40.0161,15.8075,INGAB,INGAB,N604,115,311.341,|38.5183,19,RUTOM,RUTOM,N604,118,173.499,|38.3211,19.7436,LASKO,LASKO,UM601,104,36.9289,|38.113,20.5047,KFN,KEFALLINIA,UM601,104,38.0137,115.50|35.8317,23.0419,ETILI,ETILI,UM872,134,183.21,|35.2276,23.6808,PLH,PALEOCHORA,UM872,134,47.8506,114.60|35.1736,24.6356,TIPUS,TIPUS,R78,91,46.9506,|35.3397,25.1803,LGIR,Nikos Kazantzakis (Heraklion),,,0,#
C'est bon pour moi maintenant, merci les gars !