php采集代碼前幾天做了個小說連載的程序,抓取別人網(wǎng)頁內(nèi)容php采集百度新聞標題
2022-04-10
收集器,通常稱為小偷程序,主要用于抓取他人網(wǎng)頁的內(nèi)容。關于集熱器的制作,其實并不難。就是遠程打開要采集的網(wǎng)頁,然后用正則表達式匹配需要的內(nèi)容。只要你有一點基本的正則表達式,你就可以制作自己的收集器。.
前幾天,做了一個小說連載程序。因為怕更新麻煩,順便寫了個收集器收集八通中文網(wǎng)。功能比較簡單,不能自定義規(guī)則。你可以自己擴展。
使用php作為收集器主要使用()和()兩個函數(shù),前者是遠程讀取網(wǎng)頁內(nèi)容,但只能在php5以上版本使用網(wǎng)站模板,后者是常規(guī)函數(shù),用于提取所需的內(nèi)容。
下面逐步介紹功能實現(xiàn)。
因為是小說合集,所以必須先提取出書名、作者、體裁,其他信息可以根據(jù)需要提取。
這里是《回歸明朝當太子》的目標,首先打開參考書目頁面,鏈接:
再翻幾本書,你會發(fā)現(xiàn)書名的基本格式是:ISBN/.aspx,所以我們可以做一個起始頁,定義一個,用它來輸入要收藏的書號。以后可以用$['']等格式接收需要收藏的書號。收到書號后,接下來就是構建書目頁面:$url=$['']/.aspx,當然這里是個例子,主要是為了解釋方便,最好查一下$['' ] 合法性。
構建好 URL 后,就可以開始收集圖書信息了。使用()函數(shù)打開參考書目頁面:$=($url),這樣就可以讀出參考書目頁面的內(nèi)容了。下一步是匹配標題、作者和流派等信息。這里以書名為例網(wǎng)站制作,其他都一樣。打開參考書目頁面,查看源文件,找到《回明為王》,這是要提取的書名。正則表達式提取書名:/(.*?)\/is,使用()函數(shù)提取書名:("/(.*?)\/is",$,$); 所以 $[0] [0] 的內(nèi)容就是我們想要的標題(函數(shù)的用法可以百度查到,這里就不詳細解釋了)。取出圖書信息后,下一步是取章節(jié)的內(nèi)容。取章節(jié)內(nèi)容,首先要找到每一章節(jié)的地址,然后遠程打開章節(jié),使用正則取出內(nèi)容php采集代碼,存入庫或者直接生成html靜態(tài)文件。這是章節(jié)列表的地址: 可以看到這個和參考書目頁面一樣,可以定期找到:分類號/書號/List.shtm。之前已經(jīng)獲得了書號。這里的關鍵是找到分類號。分類號可以在之前的參考書目頁面上找到。提取分類號:存入庫或直接生成html靜態(tài)文件。這是章節(jié)列表的地址: 可以看到這個和參考書目頁面一樣,可以定期找到:分類號/書號/List.shtm。之前已經(jīng)獲得了書號。這里的關鍵是找到分類號。分類號可以在之前的參考書目頁面上找到。提取分類號:存入庫或直接生成html靜態(tài)文件。這是章節(jié)列表的地址: 可以看到這個和參考書目頁面一樣php采集代碼,可以定期找到:分類號/書號/List.shtm。之前已經(jīng)獲得了書號。這里的關鍵是找到分類號。分類號可以在之前的參考書目頁面上找到。提取分類號:
("/Html\/Book\/[0-9]{1,}\/[0-9]{1,}\/List\.shtm/is",$,$); 這還不夠,還需要一個 cut 函數(shù):
[復制PHP代碼] [-] PHP代碼如下:
引用如下:
切($,$,$end){
$ = ($,$);
$ = ($end,$[1]); $[0];} 其中$是要剪切的內(nèi)容,$是開頭,$end是結尾。取出分類號:
$ = "HTML/書/";
$結束
= "列表.shtm";
$ = cut($[0][0],$,$end);
$ = ("/",$);[/php]
這樣,$[0] 就是我們要找的分類號。下一步是構造章節(jié)列表的地址:$ = $[0]/$['']/List.shtm。有了這個,你可以找到每一章的地址。方法如下:
引用如下:
$ = "\"";
$uend
= "\"";
//t的縮寫
$ = ">";
$傾向于
= "