Page 1 sur 1

envoyer Get variables avec php curl

Posté : 26 déc. 2017, 11:56
par nunoonline
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);

Re: envoyer Get variables avec php curl

Posté : 26 déc. 2017, 23:45
par GeGaX
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 '?'.

Re: envoyer Get variables avec php curl

Posté : 27 déc. 2017, 09:50
par nunoonline
@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

Posté : 29 déc. 2017, 10:57
par @rthur
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.