re
bonjour itwoo
je te l'ai dis plus haut regarde l'inspecteur F12 et enregistre la requete tu verra c'est plus des json mais xml et en plus c'est une app PHP
donc les requête multipage sur le new Euronext tu oublie
je vais regarder plus a fond
re
bonjour itwoo
je te l'ai dis plus haut regarde l'inspecteur F12 et enregistre la requete tu verra c'est plus des json mais xml et en plus c'est une app PHP
donc les requête multipage sur le new Euronext tu oublie
je vais regarder plus a fond
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
re
d'accord c'est la page1 qui est en xml et les autre en json
page1 en en
Clé Valeur
Demande GET /en/pd/stocks/ALXB,ALXL,ALXP,XPAR,XAMS,XBRU,XLIS,XMLI,MLXB,ENXB,ENXL,TNLA,TNLB,XLDN,XESM,XMSM,XATL/dp_stocks/df_stocks HTTP/1.1
Accept text/html, application/xhtml+xml, */*
Referer https://live.euronext.com/fr/pd/stoc...ocks/df_stocks
Accept-Language fr-FR
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding gzip, deflate
Host live.euronext.com
DNT 1
Connection Keep-Alive
Cache-Control no-cache
Cookie _ga=GA1.2.313048123.1564903483; _hjid=719fbf22-aa71-4c16-8965-e343b2622c57; _gid=GA1.2.582196438.1566129022; _gat=1; _gat_UA-46900155-5=1; TS01a5de3f=015c8de7070ec6500728319b621663e528cb0db60623af5693a507e8780874fe4c413c10b3; _hjDonePolls=408179; _hjIncludedInSample=1; _hjShownFeedbackMessage=true
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
page 1 en FR
Clé Valeur
Demande GET /fr/pd/stocks/ALXB,ALXL,ALXP,XPAR,XAMS,XBRU,XLIS,XMLI,MLXB,ENXB,ENXL,TNLA,TNLB,XLDN,XESM,XMSM,XATL/dp_stocks/df_stocks HTTP/1.1
Accept text/html, application/xhtml+xml, */*
Referer https://live.euronext.com/en/products/equities/list
Accept-Language fr-FR
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding gzip, deflate
Host live.euronext.com
DNT 1
Connection Keep-Alive
Cache-Control no-cache
Cookie _ga=GA1.2.313048123.1564903483; _hjid=719fbf22-aa71-4c16-8965-e343b2622c57; _gid=GA1.2.582196438.1566129022; _gat=1; _gat_UA-46900155-5=1; TS01a5de3f=015c8de707b2e4ed7f296402ee5abb2e2ae7d19dcd5a778fd486f77a4b8a7cdc558e218086; _hjDonePolls=408179; _hjIncludedInSample=1; _hjShownFeedbackMessage=true
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
page2
Clé Valeur
Demande POST /fr/pd/data/stocks?mics=ALXB%2CALXL%2CALXP%2CXPAR%2CXAMS%2CXBRU%2CXLIS%2CXMLI%2CMLXB%2CENXB%2CENXL%2CTNLA%2CTNLB%2CXLDN%2CXESM%2CXMSM%2CXATL&display_datapoints=dp_stocks&display_filters=df_stocks HTTP/1.1
Accept application/json, text/javascript, */*; q=0.01
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer https://live.euronext.com/fr/pd/stoc...ocks/df_stocks
Accept-Language fr-FR
Accept-Encoding gzip, deflate
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Host live.euronext.com
Content-Length 1651
DNT 1
Connection Keep-Alive
Cache-Control no-cache
Cookie _ga=GA1.2.313048123.1564903483; _hjid=719fbf22-aa71-4c16-8965-e343b2622c57; _gid=GA1.2.582196438.1566129022; TS01a5de3f=015c8de707b2e4ed7f296402ee5abb2e2ae7d19dcd5a778fd486f77a4b8a7cdc558e218086; _hjDonePolls=408179; _hjIncludedInSample=1; _hjShownFeedbackMessage=true
argument du send
draw=5&columns%5B0%5D%5Bdata%5D=0&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=1&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=false&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=2&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=false&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=3&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=false&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=4&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=false&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=5&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=false&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=6&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=false&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=asc&start=20&length=20&search%5Bvalue%5D=&search%5Bregex%5D=false&args%5BinitialLetter%5D=&iDisplayLength=20&iDisplayStart=20&sSortDir_0=asc
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Bonjour Pat,
Quelle rapidité, j’ai modifié le post#20 car il n’était pas clair…
Dans un 1° temps je vais finir d’étudier boursedeparis avec sEcho et iDisplayStart pour voir qui commande la page retournée par le serveur...je voudrais comprendre si la requête est fixe ou variable et qui la dirige...
Puis ensuite chercher le 13 chiffres manquant (de la date) pour la requête lors du clic sur une valeur en particulier
Puis ensuite reprise des essais pour live.euronext en reprenant tes post #21 et suivant...
Il y a eu tellement de changements que pas à pas c'est plus prudent.
Merci de ton aide
Bonjour,
Pat en fait sEcho ne sert qu'a compter le nombres de requêtes envoyées, c'est le iDisplayStart qui joue le rôle de guide pour savoir quelle page télécharger...et même carrément la requête fonctionne sans le sEcho!!!
Ce que je voudrais comprendre c'est si la requête vient interroger le serveur et le serveur lui répond en créant le fichier Response.text suite à la compréhension et interprétation de cette requête ou si cette Response.Text est déjà pré-enregistrée par le serveur sur une URL où l'on vient chercher l'information (je crois que c'est ça)...
Par contre dans les 2 cas la requête n'interprête que certains éléments et la requête peut donc être variable du moment que les paramètres minimums utiles à son fonctionnement sont présents ...ce qui explique par exemple que iDisplayStart ne s'affiche que de 20 en 20 (même si mis iDispayStart=30 cela débutera de iDisplayStart=20 et que la requête marche aussi quelque soit sEcho!!!
Autre question stp:
Pour la 1° page l'URL est la suivante:
mais par exemple comment aller à l'URL de la 2° page avec cette URL+ sa chaine de paramètres:"https://www.boursedeparis.fr/pd/stocks/data?formKey=nyx_pd_filter_values:eca59d7bcdd17c0bcee320314cf0bc49"
car dans le navigateur web cela ne marche pas!!!"https://www.boursedeparis.fr/pd/stocks/data?formKey=nyx_pd_filter_values:eca59d7bcdd17c0bcee320314cf0bc49"
+
"sEcho=2&iColumns=7&sColumns=&iDisplayStart20&iDisplayLength=20&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=true&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&bSortable_5=false&bSortable_6=false"
Merci pour les explications....
re
je ne sais pas mais si il y a un argument dans ".send" en General c'est dynamique
et la réponse est dans l'url en fait car c'est toujours la même donc le json est construit
je n'en suis pas sur mais c'est logique sinon les url seraient différentes pour chaque pages
non si tu respecte pas ca il te sort au bout de X requête selon le traficPar contre dans les 2 cas la requête n'interprête que certains éléments et la requête peut donc être variable du moment que les paramètres minimums utiles à son fonctionnement sont présents ...ce qui explique par exemple que iDisplayStart ne s'affiche que de 20 en 20 (même si mis iDispayStart=30 cela débutera de iDisplayStart=20 et que la requête marche aussi quelque soit sEcho!!!
et pour les arguments
et l'argumentation de va pas dans l'url directement elle passe par une fonction qui créée le JSON en fonction du bouton page cliqué
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Bonjour,
Merci des explications mais je suis un peu perdu !!!
Pat,
Si j’ai suivi tu penses que la requête travaille sur l’URL principale celle de la page d’arrivée à savoir : https://www.boursedeparis.fr/pd/stoc...e320314cf0bc49
Puis ensuite une fonction interpréte les arguments et crée le fichier Json le fichier de la réponse du serveur mais celui-ci par contre ne posséde pas d’adresse Url propre, c'est-à-dire que la 2° page et les suivantes n’ont pas d’URL propre contrairement à la 1° .
Dans ce cas le serveur n’a pas d’URL prèenregistrée puisqu’il crée au fur et à mesure des requêtes les fichiers Json...
Donc il faut impérativement passer par l’URL de la 1° page puis lancer la requête pour avoir les informations de la 2° page, on ne peut pas contourner cette étape...en allant directement chercher sur une URL propre à la 2° page...
C’est bien ça ?
Pierre : Url rewriting je vais regarder...
Pour les arguments en tout cas même si tu ne mets pas exactement les bons (il me manque toujours la date +heure sur une requête) cela semble marcher sans problème.
Est ce que c’est URL rewriting qui intervient pour corriger les arguments de manière à remettre la syntaxe interprétable et idem si iDisplaystart =30 URL rewriting corrige en mettant iDisplayStart = 20, ce serait comme un correcteur d’argument dans ce cas là?
Bonjour,
Désolé de vous solliciter encore mais je bute toujours sur le même problème que je ne parviens pas à comprendre…mais cette fois pour être plus concret j’ai pris un exemple.
Vraiment je vous remercie de votre aide car je suis en galère sévère !!!je cherche de l’aide désespèrément…
Voilà par exemple pour obtenir sur le Nasdaq le cours de Ford, il faut aller à la page générale, puis taper son symbol f (=Ford) tout à la fin de l’URL suivante : :
https://www.nasdaq.com/market-activity/stocks/f
Mais le fichier de retour de la requête ne contient pas les datas voulues il y a juste le cadre général appelant les sous cadres...
pour info voici le code pour lancer la requête et voir le résultat retourné :
Les informations recherchées son maj en permanence et se trouve en fait dans ls sous cadre sous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
32
33
34
35
36
37
38
39
40
41
42
43 Sub test_requete() URL = "https://www.nasdaq.com/market-activity/stocks/" 'pour réinitialiser URL à chaque fois sendingisin = "f" 'f =Ford, 'sendingisin = msft 'msft= Microsoft 'sendingisin = aapl 'aapl= Apple URL = URL & sendingisin Set DemandeFichier = CreateObject("Microsoft.XMLHTTP") DemandeFichier.Open "Post", URL, False DemandeFichier.setRequestHeader "Accept", "application/json, text/plain, */*" DemandeFichier.setRequestHeader "Accept-Encoding", "gzip , deflate" DemandeFichier.setRequestHeader "Content-Type", "application/json; charset=utf-8" DemandeFichier.setRequestHeader "Cache-Control", "max-age=0, no-cache, no-store" DemandeFichier.setRequestHeader "Accept-Language", "en-US,en;q=0.5" DemandeFichier.setRequestHeader "Connection", "keep-alive" DemandeFichier.setRequestHeader "Pragma", "no-cache" DemandeFichier.setRequestHeader "Host", "api.nasdaq.com" DemandeFichier.setRequestHeader "Origin", "https://www.nasdaq.com" DemandeFichier.setRequestHeader "Referer", "https://www.nasdaq.com/market-activity/stocks/" DemandeFichier.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0" DemandeFichier.send '& ARGTS_send" chaine = DemandeFichier.responseText MsgBox ("Chaine= " & chaine) 'il y a bien un retour mais celui ci ne contient pas les datas 'ici ajout de if status = 200 pour être sûr que le script revient bien If DemandeFichier.Status <> 200 Then MsgBox ("Pas de retour de connexion") reponse = DemandeFichier.responseText 'pour enregistrer sous fichier response au format texte le retour des datas Set FSys = CreateObject("Scripting.FileSystemObject") Set MonFic = FSys.CreateTextFile("C:\Users\aurel\OneDrive\Documents\bourse_aure\responseligne" & sendingisin & ".html") With MonFic .write reponse End With Set MonFic1 = FSys.CreateTextFile("C:\Users\aurel\OneDrive\Documents\bourse_aure\responseligne" & sendingisin & ".txt") With MonFic1 .write reponse End With End Sub
l'URL https://api.nasdaq.com/api/quote/f/i...etclass=stocks
En tapant l’URL dans le navigateur web cela ne pose aucun problème il y a toute l’information disponible à volonté…c’est lors du lancement de la requête qu’il y a un problème, le serveur ne veut pas accepter de donner la réponse voici l’exemple :
En fait je cherche juste à récupérer ces données ca parait si simple…
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
32
33
34
35
36
37
38
39
40
41
42
43 Sub test_requete() URL = "https://api.nasdaq.com/api/quote/" sendingisin = "f" 'f =Ford, 'sendingisin = msft 'msft= Microsoft 'sendingisin = aapl 'aapl= Apple URL = URL & sendingisin & "/info?assetclass=stocks" Set DemandeFichier = CreateObject("Microsoft.XMLHTTP") DemandeFichier.Open "Post", URL, False DemandeFichier.setRequestHeader "Accept", "application/json, text/plain, */*" DemandeFichier.setRequestHeader "Accept-Encoding", "gzip , deflate" DemandeFichier.setRequestHeader "Content-Type", "application/json; charset=utf-8" DemandeFichier.setRequestHeader "Cache-Control", "max-age=0, no-cache, no-store" DemandeFichier.setRequestHeader "Accept-Language", "en-US,en;q=0.5" DemandeFichier.setRequestHeader "Connection", "keep-alive" DemandeFichier.setRequestHeader "Pragma", "no-cache" DemandeFichier.setRequestHeader "Host", "api.nasdaq.com" DemandeFichier.setRequestHeader "Origin", "https://www.nasdaq.com" DemandeFichier.setRequestHeader "Referer", "https://www.nasdaq.com/market-activity/stocks/" DemandeFichier.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0" DemandeFichier.send '& ARGTS_send" chaine = DemandeFichier.responseText MsgBox ("Chaine= " & chaine) 'il y a bien un retour mais celui ci ne contient pas les datas 'ici ajout de if status = 200 pour être sûr que le script revient bien If DemandeFichier.Status <> 200 Then MsgBox ("Pas de retour de connexion") reponse = DemandeFichier.responseText 'pour enregistrer sous fichier response au format texte le retour des datas Set FSys = CreateObject("Scripting.FileSystemObject") Set MonFic = FSys.CreateTextFile("C:\Users\aurel\OneDrive\Documents\bourse_aure\responseligne" & sendingisin & ".html") With MonFic .write reponse End With Set MonFic1 = FSys.CreateTextFile("C:\Users\aurel\OneDrive\Documents\bourse_aure\responseligne" & sendingisin & ".txt") With MonFic1 .write reponse End With End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager