Bonjour à tous
Les propriétaires d'un site ami nous ont autorisés à utiliser les textes et images de leur site, sachant bien entendu que toute utilisation dans notre site sera dûment mentionnée.
Le problème: comment faire pour récupérer les textes et images globalement?
L'utilisation d'un "pompeur" (HTTrack) ne copie que des pages HTML avec des liens vers les textes et images en question, de plus les images sont obtenues par un script cgi:
<img src="http://adresse-du-site/cgi-bin/image.cgi?id=index-image">

Pour l'instant, la seule solution que je vois, c'est de faire des copier/coller, image par image et texte par texte.
J'ai pensé faire un script php pour automatiser cette tâche, mais il semble que le moteur php de notre hébergeur ne permette pas d'accéder à des url distantes.
Peur être pourrait on utiliser un moteur php local sur un pc?
Avant de me lancer dans cette opération, je me permets de vous demander votre avis sur la (une!) bonne façon de faire cela.
Merci de votre aide
Modifié par PapyJP (09 Oct 2018 - 09:28)
Certains hébergeurs mettent la directive allow_url_fopen à Off dans leur php.ini mais la fonction curl en php fonctionne encore pour récupérer des ressources externes au site.
L'utilisation de curl demande un peu plus d'efforts de capillo-traction que file_get_contents mais cela marche bien.
http://php.net/manual/fr/book.curl.php

AMHA, Le plus simple est d'utiliser un client FTP pour rapatrier sur ton PC les images ou textes qui t'intéressent. Sauf bien sûr si les textes sont stockés dans une base de données, c'est courant.

Perso, j'utilise, sous Ubuntu, lftp qui a une fonction mirroir dossier par dossier
Les fans d'interfaces graphiques trouveront certainement leurs bonheurs avec Filezilla ( multi-plateformes )
https://filezilla-project.org/
Toujours préférer l'original ( genuine parts ) aux copies truffées aux pubs
Modifié par bazooka07 (09 Oct 2018 - 11:21)
Meilleure solution
Oui, c'est bien le problème, j'ai bien allow_url_fopen Off et les fichiers images sont dans une base de données, comme le montre l'exemple que j'ai donné:
<img src="http://adresse-du-site/cgi-bin/image.cgi?id=index-image">

Je vais essayer le "curling" Smiley cligne Smiley sweatdrop
Modifié par PapyJP (09 Oct 2018 - 13:00)
Administrateur
Bonjour,

wget (wget32 sous Windows) permet de récupérer toutes les images d'un site, a priori en suivant https://davidwalsh.name/scrape-images-wget ça devrait fonctionner.
curl est plus compliqué et je n'ai pas la bonne ligne de commande sous la main cette semaine…

Leurs syntaxes sont cryptiques (ne pas hésiter à noter dans un coin quelle option fait quoi…) mais c'est puissant.

Bonus "respect des serveurs des ami.e.s" si l'option de limitation de bande passante est activée (ou attendre 1s entre chaque demande ce qui fait long ou lancer le script fonctionnel en pleine nuit Smiley smile )
J'ai fait quelques essais
Pour ce que j'ai à faire, il semble que je n'aie pas besoin de maîtriser les subtilités de curl.
Je me suis servi de ce document https://phpenthusiast.com/blog/five-php-curl-examples

$handle = curl_init();
$url = "la-page-ou-le-fichier-image-à-récupérer";
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($handle);
curl_close($handle);

Yapuka analyser la chaîne de caractères $result et en faire ce dont j'ai besoin, ce qui ne va pas très loin dans mon cas de figure, j'ai tous les outils nécessaires que j'ai dû fabriquer il y a 2 ans quand je faisais la migration de style du site.
Pour l'instant, j'ai su récupérer une image, mais sans la partie "analyse du résultat", qui va bien entendu me demander pas mal d'huile de neurones.
Nous n'allons bien entendu pas récupérer l'intégralité du site, une centaine de fichiers et autant d'images, ça ne va pas perturber le fonctionnement de leur site, surtout si je fais ça la nuit.