利用PHP製作簡單的內容採集器

2021-08-26 20:57:53 字數 1575 閱讀 5525

採集器,通常又叫小偷程式,主要是用來抓取別人網頁內容的。關於採集器的製作,其實並不難,就是遠端開啟要採集的網頁,然後用正規表示式將需要的內容匹配出來,只要稍微有點正規表示式的基礎,都能做出自己的採集器來的。

前幾天做了個****的程式,因為怕更新麻煩,順帶就寫了個採集器,採集八路中文網的,功能比較簡單,不能自定義規則,不過大概思路都在裡面了,自定義規則可以自己來擴充套件。

用php來做採集器主要用到兩個函式:file_get_contents()和preg_match_all(),前乙個是遠端讀取網頁內容的,不過只在php5以上的版本才能用,後乙個是正則函式,用來提取需要的內容的。

下面就一步一步來講功能實現。

因為是採集**,所以首先要將書名、作者、型別這三個提取出來,別的資訊可根據需要提取。

多開啟幾本書會發現,書名的基本格式是:書號/index.aspx,於是我們可以做乙個開始頁, 定義乙個,用來輸入需要採集的書號,以後就可以通過$_post[『number』]這種格式來接收需要採集的書號了。接收到書 號,下面要做的就是構造書目頁:$url=$_post[『number』] /index.aspx,當然這裡是舉個例子,主要是為了講解方便,實際製作的時候最好檢查一下$_post[『number』]的合法性。

preg_match_all("/html\/book\/[0-9]\/[0-9]\/list\.shtm/is",$contents,$typeid);這樣還不夠,還需要乙個切取函式:

[複製php**] [ - ]php**如下:

function cut($string,$start,$end)其中$string為要被切取的內容,$start為開始的地方,$end為結束的地方。取出分類號:

$start = "html/book/";

$end

= "list.shtm";

$typeid = cut($typeid[0][0],$start,$end);

$typeid = explode("/",$typeid);[/php]

這樣,$typeid[0]就是我們要找的分類號了。接下來就是構造章節列表的位址了:$chapterurl = 有了這 個就能找到每一章節的位址了。方法如下:

$ustart = "\"";

$uend

= "\"";

//t表示title的縮寫

$tstart = ">";

$tend

= "<";

//取路徑,例如:123.shtm,2342.shtm,233.shtm

preg_match_all("/\"[0-9]\.(shtm)\"/is",$chapterurl,$url);

//取標題,例如:第一章 九世善人

preg_match_all("//is",$file,$title);

$count = count($url[0]);

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

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

用php寫的簡單採集器

通常我們所說的採集器又叫做小偷程式,主要是用來抓取別人網頁內容的。關於採集器的製作,其實並不難,就是遠端開啟要採集的網頁,然後用正規表示式將需要的內容匹配出來,只要稍微有點正規表示式的基礎,都能做出自己的採集器來的。前幾天做了個 的程式,因為怕更新麻煩,順帶就寫了個採集器,採集八路中文網的,功能比較...

Python簡單兩步實現天氣爬蟲採集器

說道爬蟲大家或許感覺非常神秘,其實它沒有我們想象的那麼神奇 當然,google和baidu的爬蟲是一場複雜和強大的,它的強大不是爬蟲本身強大,而是後台的資料處理和資料探勘演算法非常強大 今天我們就來揭開它神秘的面紗。呵呵,用python簡單兩步就可以實現乙個網頁天氣爬蟲程式。爬蟲簡單說來包括兩個部分...

利用python製作簡單計算器

利用python的定義函式,加上if的條件語句進行程式設計 def add x,y 相加 return x y defsubtract x,y 相減 return x y defmultiply x,y 相乘 return x y defdivide x,y 相除 return x y 使用者輸入 ...