envoyer Get variables avec php curl

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : envoyer Get variables avec php curl

Re: envoyer Get variables avec php curl

par @rthur » 29 déc. 2017, 10:57

Si tu veux récupérer les valeurs, tu ne pourras pas le faire comme cela vu qu'elle ne sont pas en dur dans la page mais construite dynamiquement en javascript via une requête XHR.
Cf capture d'écran de la console de Firefox (Ctrl+Maj+i) :
2017-12-29 09_50_40-Stock Screener - Investing.com - Firefox Nightly.png
Donc si tu veux récupérer ces valeurs, c'est plutôt cette requête que tu dois effectuer, et tu récupèreras un joli JSON bien propre que tu pourras retraiter.

:!: Par contre avant de te lancer là dedans, 2 remarques :
- il est probable que ce site ait protégé techniquement son API donc il est possible que tu galère pour réussir à l'interroger correctement.
- il est illégal d'aller scrapper des infos comme celle-ci sans l'accord du site qui en est le propriétaire.
:arrow: Mon conseil est donc que tu leur poses d'abord la question pour savoir si ils n'ont pas déjà une API que tu pourrai utiliser avec leur accord.

Re: envoyer Get variables avec php curl

par nunoonline » 27 déc. 2017, 09:50

@GeGax

j'ai rectifié mais c'est toujours le meme resultat
la page "screeneur" se charge bien mais sans les parametres

Code : Tout sélectionner

Array ( [url] => https://www.investing.com/stock-screener/?sp=country::22|sector::a|industry::a|equityType::a|exchange::9%3Ceq_market_cap;1 [content_type] => text/html; charset=utf-8 [http_code] => 200 [header_size] => 912 [request_size] => 878 [filetime] => -1 [ssl_verify_result] => 19 [redirect_count] => 0 [total_time] => 0.656 [namelookup_time] => 0.016 [connect_time] => 0.063 [pretransfer_time] => 0.188 [size_upload] => 0 [size_download] => 227075 [speed_download] => 346150 [speed_upload] => 0 [download_content_length] => 227075 [upload_content_length] => -1 [starttransfer_time] => 0.453 [redirect_time] => 0 [redirect_url] => [primary_ip] => 185.94.84.100 [certinfo] => Array ( ) [primary_port] => 443 [local_ip] => 192.168.0.13 [local_port] => 63875 )

Re: envoyer Get variables avec php curl

par GeGaX » 26 déc. 2017, 23:45

Bonsoir,
Essayez ceci :
$url = "https://www.investing.com/stock-screener/?";
Sans garantie mais les 2 choses qui manquent à l'url par rapport à celle du site sont les 'www' et le '?'.

envoyer Get variables avec php curl

par nunoonline » 26 déc. 2017, 11:56

Je souhaite telecharger les resultas d'un screeneur d'actions present sur cette page pour le pays FRANCE:

https://www.investing.com/stock-screene ... rket_cap;1

pour cela, je souhaite utiliser php curl pour envoyer des variables au screeneur ( avec la methode Get)

voici le code (incorrect car je n'arrive pas à envoyer les variables)
on arrive bien à la page du screeneur par contre le pays France n'est pas selectionné dans le menu deroulant

merci d'avance pour votre aide

Code : Tout sélectionner

$url = "https://investing.com/stock-screener/"; $parameters = "sp=country::22|sector::a|industry::a|equityType::a|exchange::9>eq_market_cap;1"; $cookie = tmpfile(); $userAgent = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.31' ; $ch = curl_init("$url?$parameters"); $options = array( CURLOPT_CONNECTTIMEOUT => 10 , CURLOPT_USERAGENT => $userAgent, CURLOPT_AUTOREFERER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_COOKIEFILE => $cookie, CURLOPT_COOKIEJAR => $cookie , CURLOPT_SSL_VERIFYPEER => 0 , CURLOPT_SSL_VERIFYHOST => 0); curl_setopt_array($ch, $options); $result = curl_exec($ch); curl_close($ch); print($result);