Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recup de donnee avec PHP/cURL

1 réponse
Avatar
Ch. A.
Bonjour,

Je vais essayé de faire court !
Soit une page web www.xxx.com/page. Cette page contient un formulaire
qui appelle un script situé sur une autre site www.yyy.com/script.pl
Lorsque sur la page xxx on fait un submit, le formulaire perl fait une
extraction de data qu'il met dans un fichier. Il affiche ensuite une
page contient le nom du fichier. il faut cliquer dessus pour le récupérer.

Je souhaite automatiser la récup de ce fichier avec un script php.

J'ai donc écrit un petit bout de code en php avec libcurl.
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.yyy.com/script.pl");
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, "arg1=$aaa&arg2=$bbb&arg3=$ccc");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux i686;
en-US; rv:1.7.12) Gecko/20060211 Fedora/1.0.7-1.3.fc3.legacy
Firefox/1.0.7");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
$result=curl_exec($ch);

Pb : le script script.pl semble pas vouloir réaliser l'extraction s'il
n'est pas appelé par la page www.xxx.com. Est-ce qu'il y a un moyen de
contourner ça avec une option curl_setopt ? ou avec un autre moyen ?

Le pb suivant sera de récupérer automatiquement le fichier indiquée par
la page produite par le script perl...Mais chaque chose en son temps ;)

Merci

1 réponse

Avatar
Calimero
Ch. A. wrote:

Pb : le script script.pl semble pas vouloir réaliser l'extraction s'il
n'est pas appelé par la page www.xxx.com. Est-ce qu'il y a un moyen de
contourner ça avec une option curl_setopt ? ou avec un autre moyen ?


Difficile de dire ce qui se passe exactement (genre y a un token
d'authentification ...) sans pouvoir les pages en question.

Une autre hypothèse c'est que le 2ème script contrôle l'en-tête HTTP
REFERER (qui contient l'URL de la page appelante, selon le bon vouloir
du navigateur).

Tente un:
curl_setopt($ch, CURLOPT_REFERER, "http://www.xxx.com/page");

--
@+
Calimero