天天看點

實作蜘蛛捕捉的PHP代碼

seo(search engine optimization),漢譯為搜尋引擎優化,為近年來較為流行的網絡營銷方式,主要目的是增加特定關鍵字的曝光率以增加網站的能見度,進而增加銷售的機會。分為站外seo和站内seo兩種。seo的主要工作是通過了解各類搜尋引 擎如何抓取網際網路頁面、如何進行索引以及如何确定其對某一特定關鍵詞的搜尋結果排名等技術,來對網頁進行相關的優化,使其提高搜尋引擎排名,進而提高網站 通路量,最終提升網站的銷售能力或宣傳能力的技術。

很多做seo的, 經常會問為什麼我的頁面沒有被收錄,為什麼我的快照還是上個星期的,怎麼百度還不更新我的站點。這些都是剛入門問的問題。做seo的人都知道,知道搜尋引 擎的規律很重要。你要知道蜘蛛是否來過你的站點,什麼時候來 過,是哪家蜘蛛。這些都有利于你針對性的做優化。

很多伺服器支援蜘蛛爬行日志,但是大部分站長都是虛拟機,有的空間并不支援記錄蜘蛛爬行。這時候就需要我們編寫代碼來記錄蜘蛛的活動規律。

在網上找了很多的代碼都不能正确使用,或者功能不完善。

隻要自己研究起來。總結出一下一套代碼,百分百保證使用。

實作蜘蛛捕捉的PHP代碼

<?php  

function get_naps_bot(){  

    $useragent = strtolower($_server['http_user_agent']);  

    if (strpos($useragent, 'googlebot') !== false){  

        return 'googlebot';  

    }  

    if (strpos($useragent, 'msnbot') !== false){  

        return 'msnbot';  

    if (strpos($useragent, 'slurp') !== false){  

        return 'yahoobot';  

    if (strpos($useragent, 'baiduspider') !== false){  

        return 'baiduspider';  

    if (strpos($useragent, 'sohu-search') !== false){  

        return 'sohubot';  

    if (strpos($useragent, 'lycos') !== false){  

        return 'lycos';  

    if (strpos($useragent, 'robozilla') !== false){  

        return 'robozilla';  

    return false;  

}  

function nowtime(){  

    $date=date('y-m-d.g:i:s');  

    return $date;  

$searchbot = get_naps_bot();  

if ($searchbot) {  

    $tlc_thispage = addslashes($_server['http_user_agent']);  

    $url=$_server['http_referer'];  

    $file='robotslogs.txt';  

    $time=nowtime();  

    $data=fopen($file,'a');  

    $pr='$_server[request_uri]';  

    fwrite($data,'time:$time robot:$searchbot url:$tlc_thispage\n page:$pr\r\n');  

    fclose($data);  

?>  

以上代碼比網上流傳的版本多了個記錄搜尋引擎請求頁面記錄,可以看到蜘蛛每次來爬取的是那個頁面。更加利于分析蜘蛛對網站的權重以及對不同欄目和頁 面的青睐。

seo最終的是從實際出發,用資料說話,而不是憑空想象。一切優化的基礎都是資料,一切優化的目的也是為了得到資料。