2009-06-26 10 views
4

Je me demandais si l'un d'entre vous savait comment implémenter un système dorsal qui récupèrerait les informations SEO de Google (classement de sites Web, #ocurrences dans les premiers résultats de X dans google, etc.).Google Search API Backend

Je sais que Google AJAX Search API (code.google.com/apis/ajaxsearch/) vous permettra de récupérer le contenu sans avoir à "wget" ou "curl", mais en utilisant les informations de recherche ne semble pas soyez légal (code.google.com/apis/ajaxsearch/terms.html).

Des idées sur la façon de mettre en œuvre cela?

Répondre

0

http://toolbarqueries.google.com est la barre d'outils Google utilisée (ou utilisée pour) pour obtenir le PageRank d'un lien. Il peut être facilement interrogé en hachant d'abord l'URL pour vérifier dans un format spécifié. Je pense que c'est une API non documentée et que, par conséquent, les implications juridiques de son utilisation ne sont pas claires.

salutations, DrSlump

2

J'ai étudié comment s'y prendre avec Google, et AFAICT il n'y a vraiment aucun moyen de le faire légalement. Puisque leur vache à lait sont ces SERP, ils ne permettent à personne de les gratter pour une raison quelconque.

Il existe une multitude de services qui vous permettront de vous débarrasser de Google, mais d'après ce que je peux dire, ils le font tous contre les TOS de Google. Si vous trouvez un moyen de le faire légalement, faites le moi savoir. Je suppose qu'il y en a quelques-uns qui grattent avec la permission accordée, mais je ne sais pas qui ils sont.

Les seules idées que je l'ai eu à ce jour sont:

  • Mettre en place un « serveur proxy » qui est utilisé pour automatiser les requêtes Google des clients. Le proxy peut alors voir les résultats et faire le grattage, et ce n'est pas "automatisé". Si l'utilisateur entre 20 termes, alors ouvrez 20 images qui effectuent la recherche via le serveur proxy.
  • Accrocher le trafic Web à un site. En bref: je visite votre site, et un appel JavaScript en arrière-plan recherche Google et publie les résultats sur votre site. Ceci est contraire à l'éthique, car je peux me demander pourquoi "vos" recherches apparaissent dans mon historique Google.

La question est "automatisé". J'ai le sentiment que les services qui font cela ont en fait des fermes d'ordinateurs dans le monde entier pour faire croire (à Google) qu'ils ne sont pas éraflés. Je suppose que si vous commencez à générer du trafic important à partir d'une seule adresse IP, tout ira bien pour un moment.

Peut-être devriez-vous demander la permission?

0

Créez le fichier querygoogle.php dans le même dossier:

<?php 
session_start(); 
// Here's the Google AJAX Search API url for curl. It uses Google Search's site:www.yourdomain.com syntax to search in a specific site. I used $_SERVER['HTTP_HOST'] to find my domain automatically. Change $_POST['searchquery'] to your posted search query 

$url = 'http://ajax.googleapis.com/ajax/services/search/web?rsz=large&v=1.0&start=20&q=' . urlencode('' . $_POST['searchquery']); 
// use fopen and fread to pull Google's search results 
$handle = fopen($url, 'rb'); 
$body = ''; 
while (!feof($handle)) { 
    $body .= fread($handle, 8192); 
} 
fclose($handle); 

// now $body is the JSON encoded results. We need to decode them. 
$json = json_decode($body); 

// now $json is an object of Google's search results and we need to iterate through it. 
foreach($json->responseData->results as $searchresult) 
{ 
    if($searchresult->GsearchResultClass == 'GwebSearch') 
    { 
     $formattedresults .= ' 
    <div class="searchresult"> 
    <h3><a href="' . $searchresult->unescapedUrl . '">' . $searchresult->titleNoFormatting . '</a></h3> 
    <p class="resultdesc">' . $searchresult->content . '</p> 
    <p class="resulturl">' . $searchresult->visibleUrl . '</p> 
    </div>'; 
    } 
} 

$_SESSION['googleresults'] = $formattedresults; 
header('Location: ' . $_SERVER['HTTP_REFERER']); 
exit; 
?> 

Et créer l'autre fichier search.php dans le même dossier:

<?php 
session_start(); 
?> 

<form method="post" action="querygoogle.php"> 
<label for="searchquery"><span class="caption">Search this site</span> <input type="text" size="20" maxlength="255" title="Enter your keywords and click the search button" name="searchquery" /></label> <input type="submit" value="Search" /> 
</form> 

<?php 
if(!empty($_SESSION['googleresults'])) 
{ 
    echo $_SESSION['googleresults']; 
    unset($_SESSION['googleresults']); 
} 
?> 

Cliquez sur le bouton de recherche et le résultat sont imprimés avec écho $_SESSION['googleresults'];