Nous sommes le Mer 23 Juil, 2025 19:05
Supprimer les cookies

[Trouvé]Automatiser une recherche sur internet

Pour une tâche précise, pour remplacer un logiciel propriétaire donné...

Jeu 30 Mars, 2006 21:04

Bonjour à tous,

J'ai à effectuer quotidiennement des recherches sur un site web, ce qui est vu le nombre de recherches, long et fastidieux.
Je souhaiterai donc automatiser au maximum cette tâche.

En données d'entrée, j'ai une liste de fiches à visualiser, identifiées par un numéro quelconque (=pas de suite logique dans la numérotation). Actuellement, je renseigne le champ correspondant, lance la recherche et enregistre la page, reviens en arrière, et recommence.
J'ai bien essayé une méthode consistant à trouver l'url lancée lors de la recherche, mais je bute (a priori parce que la recherche est faite par une méthode POST, et que l'url de la page de résultat n'est pas trouvable à partir de l'id de la fiche à consulter).

Je suis donc à la recherche d'un logiciel (libre, ou à defaut gratuit pour utilisation commerciale, sous WinXP), ou d'une méthode (type code php, un post traitement étant effectué en php sur les fichiers textes enregistrés), me permettant d'automatiser ces recherches. J'ai pensé au logiciel supermacro, mais son utilisation n'est pas très pratique dans mon cas puisqu'il ne fait que simuler des gestes, ce qui pose problème suivant la taille des fenêtres, la résolution, ...

Si je n'ai pas été très clair, n'hésitez pas à me le signaler.

Merci d'avance pour votre aide, et un grand bravo pour ce site et ce forum !
Dernière édition par nounourson le Dim 02 Avr, 2006 12:47, édité 1 fois au total.
nounourson

Messages : 3

Jeu 30 Mars, 2006 21:46

Euh, AutoIT peut-être?
Je l'ai installé, mais je dois bien dire que je ne l'ai pas encore essayé.
Chico

Messages : 189

Jeu 30 Mars, 2006 22:09

Si ça peut t'aider, je pense qu'il est assz simple de transformer (au moins pour une fois) le POST en GET :

- Tu peux sauvegarder la page qui contient le formulaire et l'éditer pour remplacer les POST par des GET.
Après tu l'ouvr, lance une recherche et copie l'URL affichée en "mode" GET. Ça marche très souvent.

- Tu peux utiliser Firefox avec l'extension Web Developper Toolbar pour convertir a la volée des POST en GET.



Perso, j'aurais bien vu un petit script sh sous Linux. Pour Windows XP, tu peux utiliser cygwin pour avoir pas mal d'outils du monde Linux, dont bash (language de script basé sur le sh).
Je pense à la commande GET (pour télécharger des pages web.. Comme "monsite.fr/search?champ=valeur" par exemple), 'grep', 'sed' et 'cut' pour récupérer une URL à télécharger et 'wget' pour télécharger.

En gros et en simplifié, le final aurait une tete de ce genre (executable via cygwin)

getDoc.sh :

Code: Tout sélectionner
URLDEPART="http://mon.site.web/ma/page?var=val..search="

# parcours des arguments du script
for $recherche
do
    wget "`GET "${URLDEPART}$recherche" | grep 'marqueurDeLaBonneLigne' | sed.. |cut.. `"
done


Le code est super crade, je te l'accorde :roll: . Je sais pas si t'auras d'autres réponses.. Si oui esperons qu'elles soient plus softs.
Si t'as des questions sur cette méthode n'hésite pas.

PS : dans l'exemple, je suppose que la recherchete renvoie une liste d'URL. Mais si elle te renvoie directement ce que tu as à télécharger c'est plus simple ! (pas de 'grep', 'cut' ni 'sed'. Juste le 'wget' et le 'GET').
nopper

Messages : 59
Géo : Rennes/35/Bretagne

Sam 01 Avr, 2006 09:48

Merci beaucoup pour vos réponses.

Je vais étudier ces 2 pistes, et reviendrai donner mes impressions.

[EDIT2]

J'ai trouvé mon bonheur avec AutoIT, quelques lignes de code assez simples, et hop tout est fait comme je voulais, même plus besoin de php.
Merci pour l'idée!


[EDIT]
nopper, j'ai essayé l'extension de Firefox, seulement j'ai réussi à faire une fois le changement post->get, mais ca ne veut plus. En affichant les détails du formulaire, il ne m'affiche plus la partie "action = ...." et "method = 'post'". Peut-être un problème de focus (je dois pas cliquer au bon endroit avant de lui demander d'afficher les infos ?)
J'ai quand-même fait une fois cette transformation, mais même après confirmation du passage en get, ca ne m'affichait pas ce que je voulais. Le code ressemble à ca :
Code: Tout sélectionner
{...
url = "http://www.uneurl.com/undossier";
document.Search.action=url;
document.Search.idmessage.value=x;
document.Search.method="post"
document.Search.submit();
}

et même en get, l'url affichée pour les résultats est "http://www.uneurl.com/undossier".
(la recherche se fait par une image cliquable, associée à un code JS, qui n'apparait pas dans la fenêtre d'information de la page (là ou on voit la liste des url, des images, ...) en tant que bouton submit)

Concernant ton code sh, je n'ai que de vagues souvenirs de Linux, mais je crois comprendre qu'il fait ce que je fais actuellement en php : prendre la bonne page, l'enregistrer. Au détail près qu'effectivement, le grep est très utile car j'ai bien une liste de liens suite à la recherche (par exemple les fiches n°25 de type A ou B, et seules les A me concernent). Connais-tu un équivalent en php? D'autre part, toujours d'après ce que j'ai l'impression de comprendre, cette solution de passer par un code nécessite de connaître les paramètres passés lors de la recherche...

Bref, si tu vois une solution pour récupérer ces fichus paramètres lors de la recherche, je t'en serai très reconnaissant :wink:
nounourson

Messages : 3

Ven 28 Avr, 2006 14:42

nounourson a écrit:J'ai à effectuer quotidiennement des recherches sur un site web, ce qui est vu le nombre de recherches, long et fastidieux.
Je souhaiterai donc automatiser au maximum cette tâche.

En données d'entrée, j'ai une liste de fiches à visualiser, identifiées par un numéro quelconque (=pas de suite logique dans la numérotation). Actuellement, je renseigne le champ correspondant, lance la recherche et enregistre la page, reviens en arrière, et recommence.
J'ai bien essayé une méthode consistant à trouver l'url lancée lors de la recherche, mais je bute (a priori parce que la recherche est faite par une méthode POST, et que l'url de la page de résultat n'est pas trouvable à partir de l'id de la fiche à consulter).


Tu souhaites donc automatiser l'archivage de pages trouvées à partir d'une liste de numéros.

nounourson a écrit:Je suis donc à la recherche d'un logiciel (libre, ou à defaut gratuit pour utilisation commerciale, sous WinXP), ou d'une méthode (type code php, un post traitement étant effectué en php sur les fichiers textes enregistrés), me permettant d'automatiser ces recherches. J'ai pensé au logiciel supermacro, mais son utilisation n'est pas très pratique dans mon cas puisqu'il ne fait que simuler des gestes, ce qui pose problème suivant la taille des fenêtres, la résolution, ...


Je te propose une solution à base de scripts PHP.

Tout d'abord il te faut une liste de tes numéros : tableau "array", table "numéro" dans une BDD type MySQL...

À partir de là il te faut pour chaque numéro soumettre une requête au serveur afin de valider le formulaire du moteur de recherche de manière automatique. Il te faut donc simuler un "POST" du côté client, et c'est là que le script PHP entre en jeu. Une technique consiste à utiliser les fonctions cURL de PHP pour "injecter" le "POST" au serveur. En clair, lui fournir les champs et leurs valeurs qu'il attend pour traiter le formulaire. Ici l'expression recherché, un numéro, et sans doute un champ pour indiquer l'action à exécuter, voir les champs du code HTML du formulaire (<form...<input type...). En jouant avec les exemples de la doc et ceux partagés par les utilisateurs, tu devrais arriver rapidement à obtenir le code HTML de la page trouvé (retourné par la fonction curl_exec).

Pour l'archivage il existe plusieurs méthodes. Une d'elle est simplement d'appeler un outil en ligne de commande comme GNU wget par exemple. J'avais aussi essayé avec HTTrack mais wget archivait mieux les pages (pas d'altération du code HTML, support de certaines fonctionnalités, archivage des ressources nécessaires à son affichage...).

Pour résumer :
  • Traiter tous les numéros
  • Poster de manière automatique le formulaire du moteur de recherche à l'aide des fonctions cURL
  • Archiver la page résultat avec un outil d'archivage des pages web/sites
goa103

Messages : 132
Géo : Lyon

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit