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 . '&)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ésultats Bing</title> </head> <body> <h1>Extraction Urls ré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é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 => 5 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 '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
Commentaires (18)
Catégorie: Scripts PHP
- Ajouter cet article à :
- Del.icio.us -
- Digg
Commentaire par ringout (1 commentaire)
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 (4 commentaires)
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 (7 commentaires)
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 (1 commentaire)
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 (41 commentaires)
Jeudi, 3 décembre , 2009 à 16:37
Pour les accents à tester avec les fonctions PHP utf8_decode() et utf8_encode()
Commentaire par Swink (4 commentaires)
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
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 (4 commentaires)
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 (4 commentaires)
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 (4 commentaires)
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















