créer un script permettant d'entrer des informations automatiquement et de lire des pages internet
Bonjour à tous,
Je viens vers vous car j'aurais besoin de créer un script qui s'apparente à un robot. Tout d'abord j'espère être dans le bon topic.
Voila je vais essayer d'être bref et concis. Imaginez un site internet ayant accès à une base de donnée. Ce site comprend une barre de recherche. Lorsqu'on tape quelque chose dans cette barre de recherche, une liste de liens apparaît.
Alors ce que je veux c'est créer un script qui soit capable de se connecter à ce site, taper dans la barre de recherche, une recherche quelconque puis (et là ca commence à se compliquer) d'une part répertorier chaque lien et les renvoyer, tout en cliquant dans chaque lien pour aller récupérer une info particulière (ou plusieurs si besoin).
Quel est le langage le plus approprié ?
Je précise que je me débrouille en PHP. J'espère que ce sera suffisant comme langage...
cdlt Globolite.
cURL pour extraire des données d'une page html
Bonjour à tous,
Je continue un topic que j'avais déjà commencer. Alors je souhaite en fait extraire des données d'une page html. J'ai trouvé sur interne un script plutôt pas mais le soucis c'est que j'arrive pas à l'adapter à ce que je veux faire.
Alors voici le code. (vous pouvez l'essayer ça fonctionne directement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php
function getHTML($url,$timeout)
{
$ch = curl_init($url); // initialize curl with given url
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); // set useragent
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // write the response to a variable
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow redirects if any
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // max. seconds to execute
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // stop when it encounters an error
return @curl_exec($ch);
}
$html=getHTML("http://www.egyptian-planet.com/news-90.html",10);
preg_match_all('/<img .*src=["|\']([^"|\']+)/i', $html, $matches);
foreach ($matches[1] as $key=>$value) {
echo $value."<br>";
}
?> |
Le résultat est que ça affiche l'adresse des images. Bon je suis pas loin de ce que je veux mais je n'arrive pas à adapter le bout de code à ce que je veux.
En fait c'est la partie :
Code:
preg_match_all('/<img .*src=["|\']([^"|\']+)/i', $html, $matches);
En fait je comprends pas qu'est-ce que c'est que tous ces signes... Je vois bien que ça permet d'obtenir le bon résultat mais pour modifier ça... je vous raconte pas.
Par exemple sur la page où je veux extraire des données, les données se trouvent entre les balises suivantes :
Code:
<a href="application?number=XX2365236">bla bla bla bla</a>
je veux récupérer le bla bla bla bla sachant qu'il y a plein de <a href="......
du coup il faut tous le récupérer....
Merci d'avance pour votre aide !!
cURL : click automatique sur une page et récupération à nouveau de l'HTML
Bonjour à tous,
J'ai à nouveau une question concernant cURL mais dans un registre très différent. Il s'avère que le site sur lequel je cherche à récupérer des données est bourré de petits obstacles...
Je m'explique. Le site en question est un moteur de recherche. Lorsqu'on tape une recherche tout ne s'affiche pas sur 1 page. Il y a par exemple 50 résultats sur la page et par exemple 8 pages.
Le soucis c'est que la première page est simple à obtenir. Mais quand j'essaye de copier l'URL de la 2ème page dans mon code pour aller récupérer l'HTML et bien là ça ne marche pas !
Et ça me récupère un HTML certes, mais ça me m'affiche :
Citation:
INVALID QUERY
THE PAGE YOU TRIED TO REACH CAUSED AN ERROR
Object must not be null
Pourtant si je prends l'URL de la deuxième page (et ainsi de suite pour les autres pages) et que je le mets dans mon navigateur et bien ça fonctionne, ça affiche directement la page 2 de la recherche ce qui me semble du coup bien bizarre...
Bref la solution à mon avis est de faire en sorte que dans le code, il y a un clique qui se passe sur la page 2 et ainsi de suite... puis récupérer à chaque clique l'HTML...
Sauriez-vous si c'est la meilleure solution, ou déjà si c'est une solution tout court ?
Ensuite connaissez-vous des scripts/fonctions qui pourraient m'aider pour coder un machin comme ça ?
Merci d'avance à tous !