Page Ranking bei bestimmten Keyword aus Suchmaschinen auslesen ?

Sebastian

Erfahrenes Mitglied
Hallo, ich suche eine Möglichkeit über PHP das Ranking einer bestimmten Website bei bestimmten Keyword(s) abzufragen.

Wichtig wären die Suchmaschinen: Google, Yahoo, T-Online, MSN

Hier z.B ist es für Google schon realisiert unter "Keyword Rank" -
http://www.ranking-hits.de/tools.php

Nur wie ?

Danke schonmal!
 
Da das gegen die Google-AGB verstößt, sollte dir hier niemand eine Antwort geben dürfen.

Alles was mit dem PR zu tun hat, ist von Google geschützt und darf nicht ohne Genehmigung verwendet werden.
 
Und wie wird das dann in der Website die ich genannt habe realisiert ? Könnte auch noch zig weitere Websites nennen in denen das verwendet wird. Ich meine übrigens nicht dieses google Pagerank was auf einer Skala von 1-10 oder so angegeben wird. Sondern wirklich das Ranking wenn ich irgendwas Suche an welche Position dann eine bestimmte Website ist (vlt ist sie ja auch gar nicht dabei).
 
Diese Seiten haben entweder ein Abkommen mit Google, das solche sog. SEO-Tools von Google abgesegnet wurden, oder sie verstoßen schlicht und einfach gegen die Geschäftsbedingungen von Google.

Ich werde dir aber trotzdem mal einen Hint geben, welchen du auf eigene Gefahr verwenden musst.

Da Google die XML-Schnittstelle für die Suchmaschinenfunktionen nicht mehr anbieten, kommt man da wohl nur mittels eines gescripteten HTTP-Clients wie z.B. Snoopy an die Informationen.
 
Habe jetzt ein Script gefunden. Auf deren Website läuft es auch ! Aber wenn ich es lokal auf meinem Wamp laufen lassen gibt er mir nur -1 zurück also Domain not found.

http://www.newhousenetwork.net/search-engine-page-ranking.php


PHP:
function Google_Search ( $keyword, $domain_name, $max_pages ) {
	// $keyword = keyword to search for
	// $domain_name = domain name to search for
	// $max_pages = the number of pages to search (100 results per page)

	// construct google URL
	$req = "http://www.google.com/search?num=100&hl=en&lr=&q="
		.urlencode($keyword)
		."&btnG=Search";

	// loop throught the search engine pages
	for($f=0;$f<$max_pages;$f++){
	
		// open a connection to google and get the contents
		if( !( $handle = fopen($req, "rb") ) ) {
			$contents = 'Unable to Connect';
		} else {
			$contents='';
			while( !feof($handle) ) {
				$contents.=fread( $handle, 8192 );
			}
			fclose($handle);
		}

		// find the beginning of the results
		$contents = substr($contents, strpos($contents,"<p class=g")-40);
	
		// search for your domain and calculate the approximate results
		if(($contPos=strpos($contents,$domain_name))>30) {
			$dn_position=substr_count(substr($contents,1,$contPos),"p class=g");
			return (($f*100)+$dn_position);
		}

		// create the next google URL
		$req = "http://www.google.com/search?q=".urlencode($keyword)
			."&num=100&hl=en&lr=&start="
			.($f+1)."00&sa=N";
	
	}

	return -1;   // search failed, domain name not found
}
 
Das bedeutet lediglich, das in den Ergebnissen mit einer maximalen Anzahl von $max_pages der Eintrag der Domain nicht vorkommt. Mit andern Keywords würde das evtl wieder anders aussehen.
 
Falsch. Ich habe den Fehler gefunden !

Google verwendet in ihren Ergebnisseiten nicht mehr den p tag sondern jetzt
div class=g

Wichtig ist auch das man ein leerzeichen hinter class=g setzt, weil es auch class=gb1 gibt.

Jetzt klappt es wunderbar ;)

Tutorials.de ist bei dem Keyword "tutorials" auf Pos. 105 ;D Verbesserungswürdig *gg*

PHP:
<?php

function Google_Search ( $keyword, $domain_name, $max_pages ) {


    // Erstelle Google Suchergebnis URL
    $req = "http://www.google.com/search?num=100&hl=en&lr=&q="
        .urlencode($keyword)
        ."&btnG=Search";

        
    for($f=0;$f<$max_pages;$f++){
    
        // Quellcode laden
        if( !( $handle = fopen($req, "rb") ) ) {
            $contents = 'Unable to Connect';
        } else {
            $contents='';
            while( !feof($handle) ) {
                $contents.=fread( $handle, 8192 );
            }
            fclose($handle);
        }

        // Anfang der Ergebnisausgabe festlegen
        $contents = substr($contents, strpos($contents,"v class=g ")-40);
    
        // Nach der Domain suchen und Pos. feststellen
        if(($contPos=strpos($contents,$domain_name))>100) {
            $dn_position=substr_count(substr($contents,1,$contPos),"v class=g ");
            return (($f*100)+$dn_position);
        }

        // nächste Ergebnis Seite
        $req = "http://www.google.com/search?q=".urlencode($keyword)
            ."&num=100&hl=en&lr=&start="
            .($f+1)."00&sa=N";
    
    }

    return -1;   // Fehler, Domain wurde nicht gefunden
}  


$test = Google_Search("tutorials","tutorials.de","3");

echo $test;

?>
 
Zurück