巧妙運用PHP函數實現採集器_PHP教程

來源:互聯網
上載者:User
PHP經過長時間的發展,很多使用者都很瞭解PHP了,我們現在可以利用PHP函數實現採集器程式。何為採集器,通常又叫小偷程式,主要是用來抓取別人網頁內容的。關於採集器的製作,其實並不難,就是遠程開啟要採集的網頁,然後用Regex將需要的內容匹配出來,只要稍微有點Regex的基礎,都能做出自己的採集器來的。

前幾天做了個小說連載的程式,因為怕更新麻煩,順帶就寫了個採集器,採集八路中文網的,功能比較簡單,不能自訂規則,不過大概思路都在裡面了,自訂規則可以自己來擴充。用php來做採集器主要用到兩個PHP函數:file_get_contents()和preg_match_all(),前一個是遠程讀取網頁內容的,不過只在php5以上的版本才能用,後一個是正則函數,用來提取需要的內容的。面就一步一步來講功能實現。因為是採集小說,所以首先要將書名、作者、類型這三個提取出來,別的資訊可根據需要提取。

這樣還不夠,還需要一個切取PHP函數:

 
  1. function cut($string,$start,$end){
  2. $message = explode($start,$string);
  3. $message = explode($end,$message[1]); return $message[0];}其中$string為要被切取的內容,$start為開始的地方,$end為結束的地方。取出分類號:
  4. $start = "Html/Book/";
  5. $end
  6. = "List.shtm";
  7. $typeid = cut($typeid[0][0],$start,$end);
  8. $typeid = explode("/",$typeid);[/php]
  9. 這樣,$typeid[0]就是我們要找的分類號了。方法如下:
  10. $ustart = """;
  11. $uend
  12. = """;
  13. //t表示title的縮寫
  14. $tstart = ">";
  15. $tend
  16. = "<";
  17. //取路徑,例如:123.shtm,2342.shtm,233.shtm
  18. preg_match_all("/"[0-9]{1,}.(shtm)"/is",$chapterurl,$url);
  19. //取標題,例如:第一章 九世善人
  20. preg_match_all("/<a href="[0-9]{1,}.shtm"(.*?)</a>/is",$file,$title);
  21. $countcountcount = count($url[0]);
  22. for($i=0;$i<=$count;$i++)
  23. {
  24. $u = cut($url[0][$i],$ustart,$uend);
  25. $t = cut($title[0][$i],$tstart,$tend);
  26. $array[$u] = $t;
  27. }

$array數組就是所有的章節地址了,到這裡,採集器就完成一半了,剩下的就是迴圈開啟每個章節地址,讀取,然後將內容匹配出來。這個比較簡單,這裡就不詳細敘述了。好了,今天就先寫到這吧,第一次寫這麼長的文章,語言群組織方面難免有問題,還請大家多包涵!


http://www.bkjia.com/PHPjc/446461.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446461.htmlTechArticlePHP經過長時間的發展,很多使用者都很瞭解PHP了,我們現在可以利用PHP函數實現採集器程式。何為採集器,通常又叫小偷程式,主要是用來抓...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.