Jeu Référencement

Extraire les urls des résultats de Google

Ecrit par admin le Dimanche 26 octobre 2008 à 15:12 - Catégorie Scraping, Scripts PHP

Comment extraire / parser les urls de résultats de recherche de Google ?

Cela fait plusieurs fois qu’on me demande comment extraire les urls de résultats de recherche de Google dans le but de les utiliser pour diverses raisons : recherche de pages de soumission d’annuaires, recherche des pages de blog avec commentaires, pages de forums, commande link ou site…

Voici donc un script php qui permet d’extraires ces urls de Google.

Différentes options sont proposées, comme le nombre de pages à extraire ou le moteur Google où se fera l’extraction ainsi que la langue du moteur.

Code source du script :

Voici le code du script php à copier/coller dans un fichier et à uploader sur votre serveur ou à utiliser en local :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
//Script php : Extraction urls Résultats Google
// Copyrights 2008 Seoblackout.com
//http://www.seoblackout.com	
//Url script : http://www.seoblackout.com/2008/10/26/extraire-resultats-google/
 
@set_time_limit(0);
$useragent='Mozilla/5.0';
$regex='<h3 class=r>';
//extension et langue google
if ((isset($_POST['ext'])) && ($_POST['ext']!='')) 
{
	$ext=strip_tags($_POST['ext']);
	if ($ext=='fr') {
	$lang='fr';
	}
	else if ($ext=='com') {
	$lang='en';
	} 
	else if ($ext=='es') {
	$lang='es';
	}
	else if ($ext=='de') {
	$lang='de';
	}
	else if ($ext=='ca') {
	$lang='en';
	}
	else if ($ext=='ca2') {
	$ext='ca';
	$lang='fr';
	}
	else {
	$ext='fr';
	$lang='fr';
	}
}
else 
{
	// par défaut, on recherche sur google.fr et lang=fr
	$ext='fr';
	$lang='fr';
}
//nombre de page à extraire :
if ((is_numeric($_POST['pages'])) && ($_POST['pages']!='')) 
{
	$c=(strip_tags($_POST['pages'])-1);
}
else 
{
	//10 pages par défaut, on part de 0 donc 10 pages = 9
	$c=9;
}
 
if ((isset($_POST['kw'])) && ($_POST['kw']!='')) 
{
	$kw=trim(strip_tags($_POST['kw']));
	$pagenum = 0;			
	$googlefrurl = "http://www.google.".$ext."/search?hl=".$lang."&q=" . urlencode($kw) . "&start=$pagenum";
	$url_new = '';
 
	while($pagenum <= $c) 
	{
			if (function_exists('curl_init')) 
			{
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_USERAGENT, $GLOBALS['useragent']);
				curl_setopt($ch, CURLOPT_URL,$googlefrurl);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
				$result=curl_exec ($ch);
				curl_close ($ch);
			} 
			else 
			{
				$result= file_get_contents($googlefrurl);
			} 	
		preg_match_all('/'.$regex.'<a href="(.*?)"/si', $result, $matches);
			$i = 0;
			$n = count($matches[1]);
			$pagenum++;
			$pagenum2 = $pagenum.'0';
			$googlefrurl = "http://www.google.".$ext."/search?hl=".$lang."&q=" . urlencode($kw) . "&start=$pagenum2&safe=off&pwst=1&filter=0";
 
			while($i <= $n) 
			{
				$url_new1 = addslashes($matches[1][$i]);
				$url_new .= trim($matches[1][$i])."<br>";
				$i++;
				flush();
			}
	}
	$url_new .= '';				
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Extraction Urls résultats Google</title>
</head>
<body>
<h1>Extraction Urls résultats Google</h1>
<div>
<?php 
if ((isset($_POST['kw'])) && ($_POST['kw']!='')) {
	echo "<h3>Keyword : ",strip_tags($kw),"</h3>";
	echo "<h6>Google Results</h6>";
	echo str_replace('<br><br>','<br>',$url_new); 
}
?>
<form method="POST" action="<?php echo strip_tags($_SERVER['REQUEST_URI']) ;?>">
<p>Saisir vos mots-clés :</p>
<input name="kw" type="text" size="100" value="<?php if (isset($_POST['kw'])) {echo strip_tags($kw);} ?>">
<p>Nombre de pages à extraire (optionel => 10 pages par défaut):</p>
<input name="pages" type="text" size="3" maxlength="3" value="<?php if (isset($_POST['pages'])) {echo strip_tags($_POST['pages']);} else {echo '10';} ?>">
<p>Moteur :</p>
<select name="ext">
<option value="fr"<?php if (($_POST['ext'])=='fr') {echo ' selected';} ?>>Google.fr (hl=fr)</option>
<option value="com"<?php if (($_POST['ext'])=='com') {echo ' selected';} ?>>Google.com (hl=en)</option>
<option value="es"<?php if (($_POST['ext'])=='es') {echo ' selected';} ?>>Google.es (hl=es)</option>
<option value="de"<?php if (($_POST['ext'])=='de') {echo ' selected';} ?>>Google.de (hl=de)</option>
<option value="ca"<?php if (($_POST['ext'])=='ca') {echo ' selected';} ?>>Google.ca (hl=en)</option>
<option value="ca2"<?php if (($_POST['ext'])=='ca2') {echo ' selected';} ?>>Google.ca (hl=fr)</option>
</select>
<p><input type="submit" value="Go" name="go">
<input type='button' value='Annuler' onclick='location.href="<?php echo strip_tags($_SERVER['REQUEST_URI']) ;?>"'></p>
</form>
<br />
<small>Script proposé par SEO BlackOut : <a href="http://www.seoblackout.com/">référencement</a></small>
</div>
</body>
</html>

Démo :

Dans la démo, le nombre de résultats extraits est limité à 3 pages uniquement !

http://www.seoblackout.com/scripts/extraire-urls-google.php

Commentaires (14)

Catégorie: Scraping, Scripts PHP

Dictionnaire des synonymes, des mots à la pelle

Ecrit par BlackMelvyn le Vendredi 11 juillet 2008 à 13:17 - Catégorie Génération de contenu, Scraping

Créer du contenu… le sujet a déjà été abordé maintes fois et la problématique reste bien présente….
Il y a toujours la possibilité d’utiliser des techniques de copieurs ou de faire du typosquatting etc…
Pas mal de solutions en réalité, plus ou moins belles, plus ou moins rapides et plus ou moins détectables.

Si l’on pense un peu au typosquatting, on en arrive rapidement à trouver une alternative à la génération de fautes d’orthographe : les synonymes.
En effet, il suffit de remplacer certains mots par leur synonyme et ainsi passer à travers le filtre anti duplicate content de nos amis les moteurs ;)
Le contenu, si vous travaillez bien, peut être très agréable pour vos visiteurs et ne perdra aucune pertinence quant à l’information que vous éditez…
La question principale est “Où trouver suffisamment de synonymes pour ça ?”

» Lire la suite : Dictionnaire des synonymes, des mots à la pelle

Commentaires (37)

Catégorie: Génération de contenu, Scraping

Scraper Google

Ecrit par admin le Jeudi 18 octobre 2007 à 17:38 - Catégorie Google, Génération de contenu, Scraping

Il arrive parfois en faisant une recherche sur Google de ne pas pouvoir accéder aux résultats de la recherche et de recevoir le message suivant de Google :

Désolés…
… nous ne pouvons pas traiter votre requête pour le moment. Un virus informatique ou un spyware (logiciel espion) nous envoie des requêtes automatiques, et il semble que votre ordinateur ou votre réseau soit infecté.

google erreur

Par exemple, essayez une recherche sur forums topics ou powered by phpbb, vous obtiendrez à tous les coups ce message au bout d’une dizaine de pages de résultats, bien sûr on clique sur page 2, page 3…

Pour pallier à ça, il suffit d’interroger google labs project Google recherche accessible et là vous n’aurez plus ce message de Google.

Très utile pour les scrapers de contenu ou pour ceux qui font des requêtes sensibles sur google comme la recherche de mots de passe…

Définition de scraper : Récupérer le contenu d’une page web en vue de réutiliser ce contenu sur son propre site. Le but est d’obtenir du contenu sans efforts, la plupart du temps de façon automatique. Cela permet au scraper de générer des milliers de pages sur des thématiques ciblées. Sur ces pages ainsi générées, le scraper va ajouter des Adsenses ou des liens d’affiliation afin de gagner de l’argent facilement.

Commentaires (6)

Catégorie: Google, Génération de contenu, Scraping



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur les moteurs de recherche Google, Yahoo, MSN.
Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !