Formation référencement

Extraire les urls des résultats de Bing

Ecrit par lemoussel le vendredi 14 août 2009 à 13:54 - Catégorie Scripts PHP

Comment extraire / parser les urls de résultats de recherche de BING ?
Pour faire suite à l’article « Comment extraire / parser les urls de résultats de recherche de Google ?« , voici le même genre de script PHP permettant d’extraire des urls du moteur de recherche Bing.

Ci-dessous le code du script php à copier/coller dans un fichier et à télécharger sur votre serveur ou à utiliser en local.

Code source du script :

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
<?php
//
// Script php : Extraction urls Résultats Bing
// By : lemoussel - Aout 2009
//
// Copyright seoblackout.com 
//
@set_time_limit(0);
@error_reporting(E_ALL | E_NOTICE);
 
//nombre de page à extraire :
if ((is_numeric($_POST['pages'])) && ($_POST['pages'] != '')) 
	$c = strip_tags($_POST['pages']) * 10;
else 
	$c = 50;
 
// extraction des resulats
if ((isset($_POST['kw'])) && ($_POST['kw'] != '')) 
{
  $kw = trim(strip_tags($_POST['kw']));
  $pagenum = 1;
  $listLink = array();
 
  while($pagenum <= $c) 
  { 
	$ch = curl_init();
 
	curl_setopt($ch, CURLOPT_URL, 'http://www.bing.com/search?q=' . urlencode($kw) . '&first=' . $pagenum);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
	curl_setopt($ch, CURLOPT_REFERER, 'http://www.bing.com/');
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8');
 
	$result['EXE'] = curl_exec($ch);
	$result['ERR'] = curl_error($ch);
 
	curl_close($ch);
 
	if ( empty( $result['ERR'] ) )
	{
		preg_match_all('(<div class="sb_tlst">.*<h3>.*<a href="(.*)".*>(.*)</a>.*</h3>.*</div>)siU', $result['EXE'], $linkfind);
		// linkfind[1] => URL,  linkfind[2] => Texte du lien
		for ($i = 0; $i < count($linkfind[1]); $i++)
			array_push( $listLink, $linkfind[2][$i].'<br>' . '<a href="' . $linkfind[1][$i] . '">' . $linkfind[1][$i] . '</a><br><br>' );
 
		$pagenum = $pagenum + 10;
		// Encore des pages resultats ?
		if (preg_match('(first=' . $pagenum . '&amp)siU', $result['EXE'], $nextlink) == 0) 
			break;			   
	}
    else
		break;
  }
}
?>
 
<!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=utf-8" />
<title>Extraction Urls r&#233;sultats Bing</title>
</head>
<body>
<h1>Extraction Urls r&#233;sultats Bing</h1>
<div>
 
<?php 
if ((isset($_POST['kw'])) && ($_POST['kw']!='')) {
	echo "<h3>Bing Results</h3>";
	echo "<h4>Keyword : ",strip_tags($kw),"</h4>";
	for ($i = 0; $i < count($listLink); $i++)
		echo $listLink[$i];
}
?>
 
<form method="POST" action="<?php echo strip_tags($_SERVER['REQUEST_URI']) ;?>">
<p>Saisir vos mots-cl&#233;s :</p>
<input name="kw" type="text" size="100" value="<?php if (isset($_POST['kw'])) {echo strip_tags($kw);} ?>">
<p>Nombre de pages &#224; extraire (optionel => 5 pages par d&#233;faut):</p>
<input name="pages" type="text" size="3" maxlength="3" value="<?php if (isset($_POST['pages'])) {echo strip_tags($_POST['pages']);} else {echo '5';} ?>">
<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 PHP proposé par SEO BlackOut : <a href="http://www.seoblackout.com/">referencement</a></small>
</div>
</body>
</html>

Article écrit par Lemoussel
liste de proxies opérationnels
black hattitude

Articles liés :

Commentaires (18)

Catégorie: Scripts PHP


18 Commentaires

Commentaire par ringout

vendredi, 14 août , 2009 à 20:57

Toujours d’excellentes contributions
bravo ..

Commentaire par Canyon

vendredi, 14 août , 2009 à 22:37

Interessant. merci du partage, lemoussel.

Commentaire par Stoff

vendredi, 14 août , 2009 à 23:04

Bout de code intéressant, à garder sous le coude.
merci

Commentaire par Fabrizio

samedi, 15 août , 2009 à 13:08

J’ai découvert ton blog il ya quelques jours, il est vraiment intéressant. J’aime vraiment tes scripts, ils font de ton site se démarquer du reste de seo blogs. S’il te plaît continue ton bon travail! Un fidèle visiteur de l’Italie.

[^ traduction automatique]

Commentaire par Clara Morgane

samedi, 15 août , 2009 à 16:22

Pour une utilisation simple, rapide et anecdotique ce script est vraiment très bien.

Pour une utilisation massive, ne vaut il pas mieux utiliser l’API de bing? même si m$ se reserve le droit de rajouter des publicité, pour le moment, je ne crois pas que cela soit le cas.

toutefois, je te remercie encore pour ce superbe exemple d’utilisation de Curl.

Edit admin: Pas de liens vers sites de Q ici, merci.

Commentaire par lemousssel

dimanche, 16 août , 2009 à 7:02

Morgane, tout a fait d’accord avec sur l’utilisation de l’API de Bing à la remarque près qu’il faut avoir une clé pour utiliser cet API. Cela implique donc que tu ne peux pas interroger anonymement.

Il existe une classe PHP5 simple d’utilisation permettant d’effectuer des recherches via l’API Bing : Bing API PHP

Commentaire par symptome

lundi, 24 août , 2009 à 15:42

Il faut bien que Bing serve à quelque chose 🙂
Je n’ai toujours pas utilisé bing d’ailleurs.. Je devrais testé avant de m’en plaindre ! Mais j’ai de mauvais souvenirs avec Live
Bonne fin de journée, Gael

Commentaire par SanOz

mardi, 15 septembre , 2009 à 8:03

Une variable utile :

&count=200

Commentaire par SanOz

jeudi, 17 septembre , 2009 à 0:56

Est ce qu’il y en a un d’entre vous qui arrive a parser plus de 200 results?
je m’explique,j ‘utilise donc la variable count= 200, il me retourne bien 200 resultats, je fais un count 200 start 200 et la plus rien

idem si je n’utilise pas la var count…
gracias

Commentaire par BoB

lundi, 30 novembre , 2009 à 18:46

Bonjour,

Merci pour le code

juste une petite question,
comment faire pour affichée les accents ?

Mille Merci
BoB

Commentaire par lemoussel

jeudi, 3 décembre , 2009 à 16:37

Pour les accents à tester avec les fonctions PHP utf8_decode() et utf8_encode()

Commentaire par Swink

vendredi, 26 février , 2010 à 9:56

Voilà je m’ennuyais tout à l’heure alors j’ai modifié un peut le code ci-dessus maintenant les résultats sont plus complet (presque comme les résultats directement sur Bing avec les liens cache… en moins)

J’ai aussi modifié le system pour le nombre de page. D’une car rare sont les gens qui vont plus loin que les dix premières pages et puis de demander au visiteurs d’entrer le nombre qui veule peut tout surcharger (j’ai éssayé avec 3000 et c’est l’horreur tant en local qu’en ligne).

Donc testé en local et en ligne et sans erreur pour le moment. L’administrateur peut supprimer si il veut.

Je prépare une autre version bientôt avec un system de pagination complet. Mais ça pour plus tard. Voilà le code (en espérant avoir mis la bonne balise)

Apparement un souci je peut pas ajouter le code ici car il me dit que il y’a plus de 4 url. Comment faire pour partager mon script directement ici ?

voici un petit screen rapide du résultat que cela donne

Voir l’image ici

Commentaire par admin

vendredi, 26 février , 2010 à 10:36

Merci Swink pour le partage 😉 envoie-le moi par mail à osmose.tiger (arobase) gmail (point) com, je le mettrai ici.

Commentaire par Swink

vendredi, 26 février , 2010 à 11:25

Tu as télécharger l’archive ?

Commentaire par admin

vendredi, 26 février , 2010 à 11:35

Et voilà le script amélioré par Swink, merci 😉
Télécharger l’archive ici.

Commentaire par Swink

vendredi, 26 février , 2010 à 18:49

Et voilà j’ai envie de sortir une version 2 du script.
Pas mal de changement dans cette version.
– Gestion des pages différentes.
– Système de pagination ajouté.
– Temps de chargement des résultats amélioré.

En premier les pages, maintenant quand vous spécifié 1,2,5 ou 10 pages elle ne se chargeront pas toutes ensemble sur la même page. Seul la première page se charge et le système de pagination prend le relais.

Le système de pagination comme dit ci-dessus, est lié à la gestion des pages. Donc si vous demandez 10 pages, vous aurez 10 liens de type 1 -2 -3 -4… qui s’afficheront (selon le nombre de pages demandés).

Du faites que seul les résultats de la page demandé sont récupérer le temps de chargement est réellement plus rapide (comparé à la version de base de ce script qui chargeait 10 pages si ont lui en demandais autant).

Une autre différence entre l’ancienne et cette version est que nous utilisons maintenant la méthode GET au lieu de POST. Cela m’a permis bien des facilités pour adapter le code.
La vitesse la vitesse, le script ne fait pas tout, cela dépend aussi de votre connexion, de la charge du serveur et de tout ça bien sûr.

Avec cette version du script que je vous fournit vous pourriez presque ouvrir un site et faire office de moteur de recherche en utilisant Bing lol
En espérant que cela vous plaise autant que moi je me suis éclaté pour le faire ^^.

Pour ceux que ça intérèssent d’essayer en direct rendez-vous sur mon site à cette adresse

http://www.snowleoo.com/snw_bing.php

J’enlèverais le fichier du serveur vers 19h 19h30, donc le temps de vous amusez avec ^^

Une erreur reste tout de même en suspens. Si vous rentrez comme mot clé poupou ou paupau ou certains nom de ce genre, le script vous sort les résultats mais une erreur de type Offset avec. Je ne sais pas encore d’ouù ça vient mais ça ne serait tarder je pense.

osmose tiger Je t’ai envoyé un email contenant l’archive à prendre comment la première fois. Préviens dès que tu l’as eu.

Bye tout le monde et donner vos avis sur cette version.

Ciao

Commentaire par Swink

vendredi, 26 février , 2010 à 20:14

Bon sayez à première vue l’erreur d’offset est corrigé. Me demandez pas pourquoi j’arriverais pas à expliquer (c’est les mystères de Php ça ^^)

Le nouveau Zip est près pour l’admin c’est quand il veut maintenant.

Bonne soirée et bonne apétit à tous

Commentaire par admin

samedi, 27 février , 2010 à 17:34

Ok archive uploadée à jour ici : http://www.seoblackout.com/scripts/bing_seoblack.rar

Merci encore Swink, j’ai pas le temps de tester de suite, je le ferai bientôt 😉

Les commentaires sont fermés pour cet article.



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur Google.

Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !