php serp scripts
juust | 07/07/2008Some basic PHP search engine result page scripts (always come in handy for yer basic seo adventures).
MSN Serp
-
$first=1;
-
$query="php+serp";
-
$count=50;
-
-
$xml = @simplexml_load_file("http://search.live.com/results.aspx?q=$query&count=$count&first=$first&format=rss");
-
foreach($xml->channel->item as $i) echo $i->link."<br />";
www.tellinya.com has another version for non-simplexml servers (uses curl and the ehttp.client class, the technique is closer to a sequential line parser so sometimes its more practical (hint:blog-pipe parsing with “streams”).
Yahoo Serp
-
-
$varkeywords=$_GET["keywords"];
-
$vardomain=$_GET["domain"];
-
-
-
$strResult='';
-
$strHitsResult='';
-
$strHitsCount=0;
-
$strHits='';
-
-
$start = 1;
-
$numberofresults = 10;
-
for($ii=0; $ii<20; $ii++) {
-
$jj=$ii*$numberofresults+1;
-
$kk=$jj+$numberofresults;
-
-
$vargoogleresultpage = "http://search.yahoo.com/search?p=".urlencode(trim($varkeywords))."&ei=UTF-8&fr=sfp&xargs=0&pstart=1&b=".$jj;
-
flush();
-
-
$googleresponse = join("",file($vargoogleresultpage));
-
$googlehits = preg_split('/<a class=\”yschttl\” /', $googleresponse, -1, PREG_SPLIT_OFFSET_CAPTURE);
-
foreach($googlehits as $googlehit){
-
$i++;
-
preg_match("/href=\"(.*?)\"/", $googlehit[0], $t, PREG_OFFSET_CAPTURE);
-
-
-
if($i > 1){
-
$serp = $i-1;
-
$SearchForDomain = "~".$vardomain."~i";
-
if(preg_match($SearchForDomain, $t[1][0])){
-
$strHitsCount++;
-
$strHits .= $serp .', ';
-
$strResult=$strResult.$serp."<b><a href=\"".$t[1][0]."\" target=\"_blank\">".$t[1][0]."</a></b><br />";
-
$strHitsResult = $strHitsResult.$serp."<b><a href=\"".$t[1][0]."\" target=\"_blank\">".$t[1][0]."</a></b><br />";
-
} else {
-
$strResult=$strResult.$serp."</a><a href=\"".$t[1][0]."\" target=\"_blank\">".$t[1][0]."</a><br />";
-
}
-
}
-
}
-
}
-
echo $strHits.' total = '.$strHitsCount.' <br />';
-
echo $strHitsResult;
-
echo '<br /><br />full list :<br />';
-
-
echo $strResult;
Google SERP
-
$varkeywords=$_GET["keywords"];
-
$vardomain=$_GET["domain"];
-
-
-
$strResult='';
-
$strHitsResult='';
-
$strHitsCount=0;
-
$strHits='';
-
-
$start = 1;
-
$numberofresults = 100;
-
for($ii=0; $ii<11; $ii++) {
-
$jj=$ii*100+1;
-
$vargoogleresultpage = "http://www.google.com/search?as_q=".urlencode(trim($varkeywords))."&num=".$numberofresults."&start=".$jj."&hl=en&lr=lang_en";
-
flush();
-
-
$googleresponse = join("",file($vargoogleresultpage));
-
$googlehits = preg_split('/class=r><a /', $googleresponse, -1, PREG_SPLIT_OFFSET_CAPTURE);
-
foreach($googlehits as $googlehit){
-
$i++;
-
preg_match("/href=\"(.*?)\"/", $googlehit[0], $t, PREG_OFFSET_CAPTURE);
-
-
-
if($i > 1){
-
$serp = $i-1;
-
$SearchForDomain = "~".$vardomain."~i";
-
if(preg_match($SearchForDomain, $t[1][0])){
-
$strHitsCount++;
-
$strHits .= $serp .', ';
-
$strResult=$strResult.$serp."<b><a href=\"".$t[1][0]."\" target=\"_blank\">".$t[1][0]."</a></b><br />";
-
$strHitsResult = $strHitsResult.$serp."<b><a href=\"".$t[1][0]."\" target=\"_blank\">".$t[1][0]."</a></b><br />";
-
} else {
-
$strResult=$strResult.$serp."</a><a href=\"".$t[1][0]."\" target=\"_blank\">".$t[1][0]."</a><br />";
-
}
-
}
-
}
-
}
-
echo $strHits.' total = '.$strHitsCount.' <br />';
-
echo $strHitsResult;
-
echo '<br /><br />full list :<br />';
-
-
echo $strResult;
MSN (being microsoft) don’t encourage commercial use of the rss-feed.









Hi Juust,
I have done almost the same script for yahoo… this morning they banned my ipaddress…
now im using yahoo boss.
Sandrine