Scraping google url
Fermé
mattmax91
-
9 nov. 2019 à 19:26
mouloud11 Messages postés 523 Date d'inscription mardi 22 septembre 2009 Statut Membre Dernière intervention 10 novembre 2019 - 10 nov. 2019 à 23:37
mouloud11 Messages postés 523 Date d'inscription mardi 22 septembre 2009 Statut Membre Dernière intervention 10 novembre 2019 - 10 nov. 2019 à 23:37
A voir également:
- Scraping google url
- Google maps satellite - Guide
- Dns google - Guide
- Lien url - Guide
- Google maps - Guide
- Google - Guide
4 réponses
mouloud11
Messages postés
523
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
10 novembre 2019
125
10 nov. 2019 à 01:43
10 nov. 2019 à 01:43
Bonjour MattMax91,
Je t'ai fais un petit script de scrapping rapide très très basique pour récuperer les résultats de Google. Pour des questions d'optimisation je te conseille d'utiliser des regex pour trouver seulement les URL des résultats de Google.
Dans tout les cas mon script te donnera un point de départ, j’ai utilisé la librairie "simple_html_dom" https://simplehtmldom.sourceforge.io/ . Il te suffi de la télécharger et de mettre mon script ci-dessous dans le meme répertoire que la librairie puis d'executer mon script et normalement ça devrait fonctionner.
N'hésite pas si tu as des questions.
Je t'ai fais un petit script de scrapping rapide très très basique pour récuperer les résultats de Google. Pour des questions d'optimisation je te conseille d'utiliser des regex pour trouver seulement les URL des résultats de Google.
Dans tout les cas mon script te donnera un point de départ, j’ai utilisé la librairie "simple_html_dom" https://simplehtmldom.sourceforge.io/ . Il te suffi de la télécharger et de mettre mon script ci-dessous dans le meme répertoire que la librairie puis d'executer mon script et normalement ça devrait fonctionner.
<?php
require_once('simple_html_dom.php');
function printResult($titlesArray, $linksArray, $result_number){
echo "Total number of links found in the first google page: " . count($titlesArray) . "\n";
echo "Print only " . $result_number . " first results.\n\n";
for ($i = 0; $i <= $result_number; $i++) {
echo "Title: " . $titlesArray[$i] . "\n";
echo "Link: " . $linksArray[$i] . "\n\n";
}
}
function getGoogleResponse($url, $exclusion, $result_number){
$html = file_get_html($url);
$linkObjs = $html->find('a');
$titlesArray = [];
$linksArray = [];
foreach ($linkObjs as $linkObj) {
$title = trim($linkObj->plaintext);
$link = trim($linkObj->href);
if (!in_array($title, $exclusion)){
array_push($titlesArray, $title);
array_push($linksArray, $link);
}
}
printResult($titlesArray, $linksArray, $result_number);
}
$url = 'https://www.google.com/search?q=recherche+a+tester';
$exclusion = ["Google", "ici", "Images", "Shopping", "Livres", "Outils de recherche", "Moins d'une heure", "Moins d'une semaine", "Moins d'un mois", "Moins d'un an", "Connexion", "Suivant >", ">", "Conditions", "Info consommateurs", "", "Maps"];
getGoogleResponse($url, $exclusion, 10);
?>
N'hésite pas si tu as des questions.
Merci bcp mouloud11 pour ton script mais j'aurai un petit problème : les url extraites ne semble pas etre completes à chaque fois (voir résultat du script ci dessous). Comment pourrai je faire pour avoir des url directement à inserer dans mon navigateur
Total number of links found in the first google page: 61 Print only 10 first results. Title: G o o g l e Link: /?sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQOwgC Title: G o o g l e Link: /?output=search&ie=UTF-8&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQPAgE Title: Vid�os Link: /search?q=chat&ie=UTF-8&source=lnms&tbm=vid&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ_AUICSgC Title: Actualit�s Link: /search?q=chat&ie=UTF-8&source=lnms&tbm=nws&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ_AUICigD Title: Rechercher les pages en Fran�ais Link: /search?q=chat&ie=UTF-8&source=lnt&tbs=lr:lang_1fr&lr=lang_fr&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQpwUIDw Title: Moins de 24�heures Link: /search?q=chat&ie=UTF-8&source=lnt&tbs=qdr:d&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQpwUIEg Title: Mot � mot Link: /search?q=chat&ie=UTF-8&source=lnt&tbs=li:1&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQpwUIFw Title: Wikip�dia Link: /url?q=https://fr.wikipedia.org/wiki/Chat&sa=U&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQmhMwAnoECAsQBw&usg=AOvVaw2K6cynSEEPbuHrb-Tbu2_c Title: Felidae Link: /search?ie=UTF-8&q=Felidae&stick=H4sIAAAAAAAAAOPgE-LQz9U3MKwsqlACs4wNzHO0hIuLrfTLU5PSEpNLiq3SEnMzc3IWsbK7peZkpiSmAgCl0MUYNQAAAA&sa=X&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQmxMwBHoECAsQCQ Title: Persan Link: /search?ie=UTF-8&q=Persan+(chat)&stick=H4sIAAAAAAAAAONgFuLQz9U3MKwsqlACs7JMzMq01LKTrfSTMvNz8tMr9VPyc1OLSzKTE0tSU-IT8zJzE3OskopSU1OKF7HyBqQWFSfmKWgkZySWaAIAqDOJ_k4AAAA&sa=X&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ0I4BMAp6BAgLEBE Title: Bleu russe Link: /search?ie=UTF-8&q=Bleu+russe&stick=H4sIAAAAAAAAAONgFuLQz9U3MKwsqlDiBLOMkpONtNSyk630kzLzc_LTK_VT8nNTi0sykxNLUlPiE_MycxNzrJKKUlNTihexcjnlpJYqFJUWF6cCAItrjb9MAAAA&sa=X&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ0I4BMAp6BAgLEBM
merci bcp
Total number of links found in the first google page: 61 Print only 10 first results. Title: G o o g l e Link: /?sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQOwgC Title: G o o g l e Link: /?output=search&ie=UTF-8&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQPAgE Title: Vid�os Link: /search?q=chat&ie=UTF-8&source=lnms&tbm=vid&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ_AUICSgC Title: Actualit�s Link: /search?q=chat&ie=UTF-8&source=lnms&tbm=nws&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ_AUICigD Title: Rechercher les pages en Fran�ais Link: /search?q=chat&ie=UTF-8&source=lnt&tbs=lr:lang_1fr&lr=lang_fr&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQpwUIDw Title: Moins de 24�heures Link: /search?q=chat&ie=UTF-8&source=lnt&tbs=qdr:d&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQpwUIEg Title: Mot � mot Link: /search?q=chat&ie=UTF-8&source=lnt&tbs=li:1&sa=X&ved=0ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQpwUIFw Title: Wikip�dia Link: /url?q=https://fr.wikipedia.org/wiki/Chat&sa=U&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQmhMwAnoECAsQBw&usg=AOvVaw2K6cynSEEPbuHrb-Tbu2_c Title: Felidae Link: /search?ie=UTF-8&q=Felidae&stick=H4sIAAAAAAAAAOPgE-LQz9U3MKwsqlACs4wNzHO0hIuLrfTLU5PSEpNLiq3SEnMzc3IWsbK7peZkpiSmAgCl0MUYNQAAAA&sa=X&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQmxMwBHoECAsQCQ Title: Persan Link: /search?ie=UTF-8&q=Persan+(chat)&stick=H4sIAAAAAAAAAONgFuLQz9U3MKwsqlACs7JMzMq01LKTrfSTMvNz8tMr9VPyc1OLSzKTE0tSU-IT8zJzE3OskopSU1OKF7HyBqQWFSfmKWgkZySWaAIAqDOJ_k4AAAA&sa=X&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ0I4BMAp6BAgLEBE Title: Bleu russe Link: /search?ie=UTF-8&q=Bleu+russe&stick=H4sIAAAAAAAAAONgFuLQz9U3MKwsqlDiBLOMkpONtNSyk630kzLzc_LTK_VT8nNTi0sykxNLUlPiE_MycxNzrJKKUlNTihexcjnlpJYqFJUWF6cCAItrjb9MAAAA&sa=X&ved=2ahUKEwjhi4DOtN_lAhVD7eAKHb7TBxAQ0I4BMAp6BAgLEBM
merci bcp
mouloud11
Messages postés
523
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
10 novembre 2019
125
10 nov. 2019 à 20:39
10 nov. 2019 à 20:39
Bonjour mattmax91,
Je viens de refactoriser le code pour qu'il soit plus propre et qu'il match mieux à ton besoin.
Tu dois maintenant spécifier le nombre de page que tu veux explorer dans ta recherche Google.
J'espère que ce code te conviendra.
Bien cordialement,
Je viens de refactoriser le code pour qu'il soit plus propre et qu'il match mieux à ton besoin.
Tu dois maintenant spécifier le nombre de page que tu veux explorer dans ta recherche Google.
<?php
require_once('simple_html_dom.php');
$search_query = "chat"; // Mots à rechercher (Un espace doit être égal au caractère "+")
$total_page_result = 10; // Nombre de pages à scrapper
$base_url = 'https://www.google.com/search?q=';
function printResult($linksArray){
echo "Total pages scrapped: " . $GLOBALS['total_page_result'] . "\n";
echo "Total number of links found: " . count($linksArray) . "\n\n";
echo "-----------------------------\n\n";
for ($i = 0; $i < count($linksArray); $i++) {
echo "Link: " . $linksArray[$i] . "\n";
}
}
function getGoogleResponse($base_url, $search_query, $total_page_result){
echo "Scrapping in progress...\n";
$linksArray = [];
for ($i = 0; $i < $total_page_result; $i++){
$html = file_get_html($base_url . $search_query . "$start=" . $i * 10);
$linkObjs = $html->find('a');
foreach ($linkObjs as $linkObj) {
$link = trim($linkObj->href);
if (!strstr($linkObj->href, "/search?") && strstr($linkObj->href, "/url?q")){
array_push($linksArray, trim($linkObj->href, "/url?q="));
}
}
}
printResult($linksArray);
}
getGoogleResponse($base_url, $search_query, $total_page_result);
?>
J'espère que ce code te conviendra.
Bien cordialement,
Bonsoir mouloud11 merci beaucoup pour ton aide, j’aurai une dernière question, comment est ce que je pourrai trier les URL et n'afficher que les URL des sites d'information et non de vidéos, de vente...
Merci encore
Merci encore
mouloud11
Messages postés
523
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
10 novembre 2019
125
10 nov. 2019 à 23:25
10 nov. 2019 à 23:25
Bonjour,
Alors il faudrait créer une liste de sites d'informations que tu souhaite garder ensuite faire une boucle sur la liste globale et garder seulement les sites de ta liste de sites d'informations.
Alors il faudrait créer une liste de sites d'informations que tu souhaite garder ensuite faire une boucle sur la liste globale et garder seulement les sites de ta liste de sites d'informations.
mouloud11
Messages postés
523
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
10 novembre 2019
125
10 nov. 2019 à 23:37
10 nov. 2019 à 23:37
Très honnêtement j’ai pas la réponse à cette question.
En revanche pour trier un peu plus les résultats tu peux faire ta recherche directement dans actualités, ça retourne surtout les sites d'informations.
Pour faire ça il faut que tu rajoute le tag "tbm=nws" à $search_query.
Exemple: $search_query = applestore&tbm=nws;
En revanche pour trier un peu plus les résultats tu peux faire ta recherche directement dans actualités, ça retourne surtout les sites d'informations.
Pour faire ça il faut que tu rajoute le tag "tbm=nws" à $search_query.
Exemple: $search_query = applestore&tbm=nws;