PHP 網頁爬蟲

 

只能爬一個頁面php

 

<?php 
function get_urls($url){  

       $url_array=array();  

       $the_first_content=file_get_contents($url);  

       $the_second_content=file_get_contents($url);  

       $pattern1 = "/http:\/\/[a-zA-Z0-9\.\?\/\-\=\&\:\+\-\_\'\"]+/";  

       $pattern2="/http:\/\/[a-zA-Z0-9\.]+/";  

       preg_match_all($pattern2, $the_second_content, $matches2);  

       preg_match_all($pattern1, $the_first_content, $matches1);  

       $new_array1=array_unique($matches1[0]);  

       $new_array2=array_unique($matches2[0]);  

       $final_array=array_merge($new_array1,$new_array2);  

       $final_array=array_unique($final_array);  

       for($i=0;$i<count($final_array);$i++)  

       {  

          echo $final_array[$i]."<br/>";  

       }  

   }  

    get_urls("http://www.yinghy.com");

?>

 

 

<?php 

$string = GetHtmlCode("http://www.yinghy.com");
echo $string;

function GetHtmlCode($url){  
    $ch = curl_init();//初始化一個cur對象  
    curl_setopt ($ch, CURLOPT_URL, $url);//設置須要抓取的網頁  
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);//設置crul參數,要求結果保存到字符串中仍是輸出到屏幕上  
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,1000);//設置連接延遲  
    $HtmlCode = curl_exec($ch);//運行curl,請求網頁  
    return $HtmlCode;  
} 
function GetAllLink($string) {   
      $string = str_replace("\r","",$string);   
      $string = str_replace("\n","",$string);   
      $regex[url] = "((http|https|ftp|telnet|news):\/\/)?([a-z0-9_\-\/\.]+\.[][a-z0-9:;&#@=_~%\?\/\.\,\+\-]+)";    
          $regex[email] = "([a-z0-9_\-]+)@([a-z0-9_\-]+\.[a-z0-9\-\._\-]+)";     
  
          
      //去掉網頁中的[]  
      $string = eregi_replace("\[|\]","",$string);  
  
          //去掉JAVASCRIPT代碼   
          $string = eregi_replace("<!--.*//-->","", $string);   
             
          //去掉非<a>的HTML標籤     
      $string = eregi_replace("</?[^aA][^<>]*>","",$string);  
          //分割$string中的全部連接         
      $output = split('</a>', $string);  
      for($i=0; $i<count($output); $i++){  
         $output_1 = split("<a", $output[$i]);  
      }  
      return $output_1;   
}   
function GetUserCareNews ($test,$keywords,$url) {  
    $messTxt = "";  
    $k=0;  
    $key = explode(";",$keywords);  
  
    //自動爲網站加載上http,避免網易郵箱連接錯誤,有必定的侷限性  
    if(!ereg("http",$url)){  
        $url = "http://".$url;  
    }  
  
    for($i=0; $i<count($test); $i++){  
        $test[$i] = eval('return'.iconv('gbk','utf-8',var_export($test[$i],true)).';');//修改編碼  
        if(ereg("href", $test[$i])  && !ereg("href='#'",$test[$i])){//去掉無效連接  
            for($j=0; $j<count($key); $j++){                    //支持多關鍵字  
                if(strpos($test[$i],$key[$j])!==false){  
                    $mess[$k++]=ereg_replace($key[$j],"<font color=red>".$key[$j]."</font>", $test[$i]);//高亮關鍵字  
            }  
            }  
        }  
    }  
    $mess = array_unique($mess);        //數組去重  
      
    //處理好發送連接,爲連接加上網站根目錄  
    for($l=0; $l<count($mess); $l++){  
        if(!ereg("http",$mess[$l]) && (strlen($mess[$l]) != 0)){//去掉空數組,這步很重要,若是不去掉直接影響後面連接的質量  
                $mess[$l] = eregi_replace("href=[\"']","",$mess[$l]);  
                $mess[$l] = $url.$mess[$l];  
                $mess[$l] = eregi_replace(" /","/",$mess[$l]);  
                if(ereg("'",$mess[$l])){  
                    $mess[$l]="<a href='".$mess[$l]."</a>";  
                }  
                if(ereg("\"",$mess[$l])){  
                    $mess[$l] = "<a href=\"".$mess[$l]."</a>";  
                }  
        }  
        else{  
            $mess[$l] = "<a ".$mess[$l]."</a>";  
        }  
        $messTxt .= $mess[$l];  
        $messTxt .= "<BR>";  
    }  
    return $messTxt;  
}  

function SendEmail($to, $content) {  
    //Author:luofei  
    //$to 表示收件人地址,$content表示郵件正文內容  
      
    error_reporting(E_STRICT);                      //錯誤報告  
    date_default_timezone_set("Asia/Shanghai");     //設定時區  
  
    require_once("class.phpmailer.php");  
    require_once("class.smtp.php");  
  
    $mail = new PHPMailer();                        //新建一個對象  
    $mail->CharSet = "UTF-8";                        //設置編碼,中文不會出現亂碼的狀況  
    $mail->IsSMTP();                             //設定使用SMTP服務  
    $mail->SMTPDebug = 1;                            //啓用SMTP調試功能i  
                                                    //1 = errors and messages  
                                                    //2 = messages only  
  
    $mail->SMTPSecure = "tls";                       //安全協議  
    $mail->Host = "smtp.googlemail.com";         //SMTP服務器          
    $mail->SMTPAuth = true;                          //啓用SMTP驗證功能      
    $mail->Username = "username@gmail.com";                 //SMTP服務器用戶名        
    $mail->Password = "******";                  //SMTP服務器用戶密碼  
          
    $mail->From = "username@gmail.com";                    //發件人                              
    $mail->FromName = "Spider Service";                      //發件人姓名(郵件上顯示)  
          
    $mail->AddAddress($to);                          //收件人地址  
    $mail->WordWrap   = 50;                          //設置郵件正文每行的字符數  
    $mail->IsHTML(true);                         //設置郵件正文內容是否爲html類型  
          
    $mail->Subject = "來自spider.html的郵件";     //郵件主題  
    $mail->Body = "<p>您好!<BR> <p>這是您感興趣的內容</p> <BR>".$content." ";  
                                                    //郵件正文  
    if(!$mail->Send())                               //郵件發送報告  
    {  
       echo "發送郵件錯誤!";  
    }   
    else  
    {  
       echo "郵件發送成功!";  
    }  
}  

?>
相關文章
相關標籤/搜索