script requete vers moteur de recherche

Eléphanteau du PHP | 46 Messages

22 déc. 2019, 09:30

bonjour je cherche un script pre-etablie, ou meme un debut de code pour réaliser des requête vers un moteur de recherche et traiter les résultats.
attention ce n'est pas un script pour faire un moteur de recherche que je cherche, mais un script permettant d’exécuter des requêtes qui vont utiliser un moteur de recherche, puis récupérer et formater les résultats obtenues

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 déc. 2019, 18:26

Bonjour,

Il n'existe pas de réponse universelle, ça dépend du moteur de recherche que tu veux utiliser.

- Bing et Yahoo ont des API officielles :
https://azure.microsoft.com/fr-fr/servi ... earch-api/
https://developer.yahoo.com/search/boss/

- Qwant a une API non officielle :
https://github.com/filippotoso/qwant-unofficial-api

- Google n'a pas d'API (et banni les IP de ceux qui essayent de crawler les listes de résultats), du coup certains acteurs proposent leurs solutions, par exemple :
https://serpapi.com/
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 46 Messages

22 déc. 2019, 20:46

bonjour @rthur et merci
je ne chercche pas d'API, je ne peut pas me permettre dans mon cas de faire une demande d'autorisation a l'utilisateur final. au contraire je cherche le script d'un crawler efficace, pour l'instant je n'ai pas trouver d'autre option pour faire ce que je recherche. (l'idée étant de monter une sorte de comparateur de produit)

en effet pas d'utilisateur finale derriere le server qui vas envoyé les requete (produites par l'utilisateur sur un client distant) au page web des fournisseur. donc je cherche une option qui m'evite d'avoir a faire une validation d'authentification via click souris.
(click obligatoire en cas d'authetification OAuth via les requete GET/POST pour la recuperation et l'activation des token)

Eléphanteau du PHP | 46 Messages

23 déc. 2019, 11:47

j'en ai trouver qqun : apache lucene, elasticsearch, apache solr, sphinxsearch, dataparksearch, xapian, etc...
des avis concernant ces différents moteur ? de preference pour coder en php...^^ (pas trop le choix, python et ruby faut oublier)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

23 déc. 2019, 12:33

Une APi ne veut pas dire forcément qu'il faut utiliser OAuth et donc demander l'accord à un utilisateur final.
Regarde les doc que je t'ai envoyé, à part Yahoo, les autres fonctionnent sans OAuth.
j'en ai trouver qqun : apache lucene, elasticsearch, apache solr, sphinxsearch, dataparksearch, xapian, etc...
Ce sont des moteurs de recherche mais la plupart ne permettent pas de récupérer les données d'un site externe de façon structurée.

Voici quelques pistes de crawlers/scrappers web :
En PHP si tu veux tout développer à la mano : https://github.com/FriendsOfPHP/Goutte

Ou sinon via des solutions pro :
https://apify.com
https://quantati.com
https://www.scraperapi.com
https://www.diffbot.com/products/crawlbot/
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 46 Messages

23 déc. 2019, 12:48

Une APi ne veut pas dire forcément qu'il faut utiliser OAuth et donc demander l'accord à un utilisateur final.
Regarde les doc que je t'ai envoyé, à part Yahoo, les autres fonctionnent sans OAuth.
j'ai commencer des essais api chez un grossiste comme digikey, et il utilise OAuth, mouser et autre l'utilise aussi et ca a pas l'air de convenir trop trop...
Voici quelques pistes de crawlers/scrappers web :
En PHP si tu veux tout développer à la mano : https://github.com/FriendsOfPHP/Goutte

Ou sinon via des solutions pro :
https://apify.com
https://quantati.com
https://www.scraperapi.com
https://www.diffbot.com/products/crawlbot/
l'idée c'est d'avoir le meilleur résultat pour le moins de boulot possible, et un framework pas trop compliqué si possible serait le top (je debute ^^), le tout en open source.
apify.com a néanmoins visiblement quelque projet open source comme son web-scrapper, reste a voir s'il est possible de le faire fonction en direct ou s'il faut une lib payante de chez apify
goutte a pas l'air trop mal, reste a voir s'il ne sera pas bloqué par les site web

Eléphanteau du PHP | 46 Messages

24 déc. 2019, 13:35

goutte a l'air pas mal, cela dit je vois pas trop ce qu'il rajoute comme surcouche a DomCrawler, par contre si c'est possible d'avoir un petit tuto sur le sujet ca m'interesse. j'ai commencer a lire la doc mais c'est pas si facile. meme la partie installation, j'ai téléchargé les sources depuis github, mais sans aucune garantie que je m'y soit pris correctement.

[EDIT] petite question supplementaire, comment je fait pour envoyer des données dans un formulaire ou un champ de recherche vias mon code php par ce que je sais les recevoire, mais les envoyer (par exemple dans le champs de recherche google) ?

en gros comment faire des requetes 'post'

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 déc. 2019, 15:25

goutte a l'air pas mal, cela dit je vois pas trop ce qu'il rajoute comme surcouche a DomCrawler,
DomCrawler est juste un parser de DOM et ne fait pas de navigation de page en page.
Goutte est le complément à DomCrawler, regarde d'ailleurs l'avant dernier exemple de la doc de DomCrawler :
https://symfony.com/doc/current/compone ... awler.html
par contre si c'est possible d'avoir un petit tuto sur le sujet ca m'interesse.
https://dev.to/sayopaul/web-scraping-in ... utte--4p6h
https://victor.4devs.io/en/web-scraping ... outte.html
j'ai commencer a lire la doc mais c'est pas si facile. meme la partie installation, j'ai téléchargé les sources depuis github, mais sans aucune garantie que je m'y soit pris correctement.
Donc tu n'as pas lu la doc, vu que la doc commence par la section installation et recommande de passer par composer ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 46 Messages

24 déc. 2019, 15:36

je sais mais je ne cherchais pas vraiment a faire une install... mais plutot a me creer un dossier de librairies et d'utilitaire reutilisable pour mes différents projets, et comme je debute aussi avec composer et que j'ai pas encore trouver le moyen de changer le dossier d'install ^^ faudra que je jete un oeil la dessus. et faut que je regarde pour la method='post' on google.com, par ce que c'est con a dire mais j'ai rien trouver sur google a ce sujet ^^ lol

Eléphanteau du PHP | 46 Messages

26 déc. 2019, 13:23

apparemment goutte a été abandonné au profit de symfony qui integre un ensemble complet (enfin d'après cette video : https://www.youtube.com/watch?v=anMqIQbYNYo, les evolution de goutte aurais été recuperer par symfony)
j'ai pu trouver quelque "mini tuto" sur la page de symfony, mais pas de manpages complete ni de réel tutoriel dommage que les fonctions / classes / definitions /variables etc... ne soient pas documentées ...
par ce que les tutos sont vraiment short ...
j'ai bien éssayer de trouver des reponses en tripatouillant dans les sources de la lib mais c'est pas evident.

Eléphanteau du PHP | 46 Messages

27 déc. 2019, 16:55

qqun pour m'aiguiller sur la façon de trouver les parametre a envoyer a un moteur de recherche quelconque pour lui faire effectuer une recherche ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 déc. 2019, 17:21

qqun pour m'aiguiller sur la façon de trouver les parametre a envoyer a un moteur de recherche quelconque pour lui faire effectuer une recherche ?
Il n'y a pas de réponse universelle, ça dépend du moteur de recherche.

Pour Google, il faut appeler une url de la forme suivante :
https://www.google.com/search?q=TONMOTCLEF
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 46 Messages

31 déc. 2019, 21:02

en fait je cherche la solution pour injecter du texte dans la balise input prévue a cet effet, et faire déjà un premier tri sur l'url de retour
par contre j'arrive pas a trouver la solution pour injecter le texte a cet endroit.
et j'imagine qu'en plus ca doit dépendre des sites web

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 janv. 2020, 19:22

Il faut tu regardes la doc du framework de crawling que tu utilises pour savoir comment faire.

https://github.com/FriendsOfPHP/Goutte
Là c'est l'exemple "Submit form" où il remplit les champs de formulaire login et password
Quand tout le reste a échoué, lisez le mode d'emploi...

kevinsahin
Invité n'ayant pas de compte PHPfrance

05 févr. 2020, 15:49

Hello,

Effectivement c'est un sujet complexe, comme dit précédemment Google bloque assez rapidement les IPs lorsque tu scrape les résultats trop rapidement a partir de la même IP.

En fonction de ton volume de recherche, il peux être interessant de louer des IPs chez des provider traditionnel genre Luminati.

Si ton volume est assez faible, une bonne solution est d'utiliser des API de scraping comme celle cité précédemment, en France aussi on a quelque chose pour ça (shameless plug): https://www.scrapingbee.com/

A ta dispo si tu as des questions.