採集器,通常又叫小偷程式,主要是用來抓取別人網頁內容的。關於採集器的製作,其實並不難,就是遠端開啟要採集的網頁,然後用正規表示式將需要的內容匹配出來,只要稍微有點正規表示式的基礎,都能做出自己的採集器來的。
前幾天做了個****的程式,因為怕更新麻煩,順帶就寫了個採集器,採集八路中文網的,功能比較簡單,不能自定義規則,不過大概思路都在裡面了,自定義規則可以自己來擴充套件。
用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 使用者輸入 ...