POST TIME:2019-03-19 16:32
前言:這篇文章主要是介紹如何使用采集功能去采集一個圖片類的網站。這次選取的目標站點為:站酷網的佳作欣賞欄目,其URL為:http://www.zcool.com.cn/shows/。 本文將會涉及到如何處理被采集頁面含有分頁以及如何使用簡單的過濾規則。本文共分為三節:第一節,主要是介紹如何進入采集界面和新增采集節點中的第一步: 設置基本信息及網址索引頁規則;第二節,主要是介紹新增采集節點中的第二步:設置字段獲取規則;第三節,主要是介紹如何采集指定節點和如何導出采集內容。
下面進入第一節。
如(圖1)所示,在后臺管理界面的主菜單中單擊“采集”,然后單擊“采集節點管理”,即可進入采集節點管理界面,如(圖2)所示。
在采集節點管理界面中,單擊左下角的“增加新節點”或者右上角的“添加新節點”(如圖2),都可進入“選擇內容模型”界面,如(圖3)所示,
在“選擇內容模型”界面的下拉列表框中,有“普通文章”和“圖片集”可供選擇。
根據被采集頁面的類型,選擇相應的內容模型。本文這里選擇“圖片集”,單擊確定后,便可進入“新增采集節點:第一步設置基本信息及網址索引頁規則”界面,如(圖4)所示,
圖4-新增采集節點:第一步設置基本信息及網址索引頁規則
圖5-節點基本信息
如(圖5)所示,這里只是介紹如何獲取“目標頁面編碼”,對于其他的設定,可參見之前的文章。具體操作步驟:
(a)打開被采集的目標頁:http://www.zcool.com.cn/shows/;
(b)單擊右鍵后選擇“查看源文件”,找到“charset”, 如(圖6)所示,
其等號后面的代碼就是所需填寫的“編碼格式”,這里是“utf-8”。
填寫后,如(圖7)所示,
圖7-設置后的節點基本信息
檢查無誤后,進入下一步設置。
圖8-列表網址獲取規則
如(圖8)所示,這里是設置被采集的文章列表頁的匹配規則。具體操作步驟:
(a)首先,回到已打開的列表頁,找到瀏覽器的URL地址欄中顯示的網址和頁面的換頁部分。如(圖9)和(圖10)所示,
圖9-瀏覽器的URL地址欄
(b)單擊“2”,打開文章列表頁的第二頁,再次找到瀏覽器的URL地址欄中所顯示的網址和頁面的換頁部分,如(圖12)和(圖13)所示,
(c)在已打開的列表頁的第二頁上面,單擊(1),回到列表頁的首頁,這時頁面的換頁部分與之前的圖10是相同的,然而瀏覽器的URL地址欄中所顯示的網址與之前圖9并不相同,如(圖13)所示,
(d)由(b)和(c)可推知,這里被采集的列表頁的網址所遵循規律為:
http://www.zcool.com.cn/shows/0!0!0!200!(*)!1!0!0/。穩妥起見,請自行測試更多列表頁。確定規律后,在“匹配網址”中,填入列表頁所遵循的規律。
(e)最后,根據需要指定采集的頁碼或者規律數字,并設定其遞增規律。
到這里,“列表網址獲取規則”部分就設置結束了。最后結果,如(圖14)所示,
圖14-設置后的列表網址獲取規
確定正確后,進入下一步設置。
圖15-文章網址匹配規則
這里是設置被采集的列表頁的匹配規則。
具體操作步驟:
(a)對于“區域開始的HTML”,可以在已打開的列表首頁,單擊右鍵后選擇“查看源文件”查找出第一篇文章的標題“高清壁紙”來獲得,如(圖16)所示,
圖16-查看源文件中,第一篇文章的標題
通過觀察,不難看出“<ul>”為整個列表的開始部分。因此,在“區域開始的HTML”中,應填入“<ul>”。
(b)在源文件中,找到最后一篇文章標題“阿奴比斯”,如(圖17)所示,
圖17-查看源文件中,最后一篇文章的標題
結合列表的開始部分并通過觀察可知,第一個“</ul>”為整個列表的結束部分,而其后的從“<ul class=”list_left_bottomw”>”到第二個“</ul>”,則為頁面的換頁部分。因此,在“區域結束的 HTML”中,應填入”</ul>”,意思是到第一個</ul>結束。
(c)經過觀察圖16和圖17的文章標題部分,可以發現,標題的鏈接地址都是含有“=.html”的。因此,可在“必須包含”中,填入“=.html”。
到這里,“文章網址匹配規則“就設置結束了。填寫后,如(圖18)所示,
圖18-設置后的文章網址匹配規則
通過以上的三個小節,新增采集節點的第一步就已經設置完成了。設置后的最終結果,如(圖19)所示,
圖19-設置后的新增采集節點:第一步設置基本信息及網址索引頁規則
全部完成并檢查無誤后,單擊“保存信息并進入下一步設置“。如果之前設置正確,單擊后,將會進入“新增采集節點:測試基本信息及網址索引頁規則設置的網址獲取規則測試”頁面并看到相應的文章列表地址。如(圖20)所示,
圖20-網址獲取規則測試
確定正確無誤后,單擊“保存信息并進入下一步設置”。否則,請單擊“返回上一步進行修改“。
到這里,第一節就結束了
單擊“保存信息并進入下一步設置”后,便可進入“新增采集節點:第二步設置內容字段獲取規則”頁面,如(圖21)所示,
圖21-設置內容字段獲取規則
在預覽網址處,系統將會自動指定一篇文章作為示范頁面,如有特殊需要可自行更改。打開示范頁面,經觀察可發現頁面中含有分頁,如(圖22)所示,
下面來設置分頁部分的匹配規則。
具體操作步驟:
(a)在頁面的源代碼中,找到分頁代碼的開始部分和結束部分,如(圖23)所示,
(b)經過觀察可知,分頁代碼位于“<div class=”show_pages”>“和”</div>”之間。因此,在”內容分頁導航所在的區域匹配規則“中,應填寫”< div class=”show_pages”>[內容]</div> “。對于分頁代碼的樣式,一共有三種可供選擇,這里應選擇第一種” 全部列出的分頁列表”。填寫后,如(圖24)所示
圖24-設置后的網頁內容獲取規則
對于“固定采集項目”中的“內容摘要、關鍵字和縮略圖“三個部分,系統會用正則進行自動匹配,僅需配置過濾內容即可。下面主要介紹如何獲取“文章標題、文章作者、文章來源、發布時間和文章內容”的采集規則以及簡單的過濾規則。
首先,打開“預覽網址“的頁面并單擊右鍵,選擇”查看源代碼“,找到文章標題” 高清壁紙(非原創作品)“,如(圖25)所示,
圖25-在源代碼中的文章標題
這里的文章標題處在”<h1 class=“font14 b blink”></h1>”之間,因此這里應該填寫”<h1 class=“ font14 b blink”>[內容]</h1>”作為文章標題的匹配規則。對于所包含的<img src=”/images/digest1.gif alt=”推薦的欣賞”>”可根據需要選擇保留或者是過濾掉。如果希望把這張圖片過濾掉,需要在過濾規則中填寫:“{dede:trim replace=”}<img([^>]*)>{/dede:trim}”。填寫后,如(圖26)所示,
圖26-文章標題的采集規則
經過查找源代碼和對比原文,可發現本文沒有涉及到原文作者。這里選擇不填寫。
這里把頁面中的上傳者作為文章來源,如圖(27)所示,
圖27-上傳者的信息
查看源代碼,并找到相應的部分,如(圖28)所示,
圖28-源代碼中上傳者的信息
從圖28中,可發現上傳者的名字介于“<li class=”show_content_r_box_uploader1″><p>“和“</p>”之間,因此這里應填 寫“<li class=”show_content_r_box_uploader1″><p>[內容]</p>”作為文章來源的采 集規則。雖然,選定的采集規則能采集到上傳者的名字,但是同時也包含了所不希望采集到的圖片和鏈接,下面通過設置過濾規則把它們過濾掉。首先,過濾掉鏈 接,這里使用“{dede:trim replace=”}<a([^>]*)>{/dede:trim}{dede:trim replace=’’}</a>{/dede:trim}”;其次,使用“{dede:trim replace=”}<img([^>]*)>{/dede:trim}”過濾掉圖片。填寫后,如圖29所示,
圖29-文章來源的采集規則
回到圖23,可發現有“17小時前”,由此可見,這里采集數字17就可以了。采集規則為“<span class=”bh”>[內容]小時前</span>”。這里不需要使用過濾規則。填寫后,如圖30所示,
圖30-文章發布時間的采集規則
這個部分是編寫采集規則的重點,也是難點。需要特別注意。
圖片集合:如果把采集的匹配規則填寫在這里的話,系統就會把所采集到的圖片,以圖集的形式保存起來,注意這里只采集圖片。
圖集內容:在顯示圖集的時候,所需顯示的說明性文字或者圖片。
具體操作步驟:
(a)在打開的內容頁面的源代碼中,找到內容的開始部分“一些壁紙”,如圖31所示,
圖31-內容的開始部分
分析一下這個源代碼可知,以下兩點:
(1)“一些壁紙”是這個圖集的內容,因此可以把“條評論<br/>”作為匹配圖集內容的開始部分。但是這樣采集到的內容會包含有< /span>,應該在過濾規則中使用“{dede:trim replace=””}</span>{/dede:trim}”過濾掉。
(2)“<div class=”show_content_pic”><ul>”可作為匹配圖片集合的開始部分,而且每一個圖片及其相關信息都是在“& lt;li class=”art_content_listli”>”和”</li>”之間的。注意到這段代碼中有兩個地方都出現了< img>,通過對比原文可發現,”<img src=”/images/zoomit1.gif” class=”jdjz”>”是一個圖標的源代碼,這里是不應該被采集到的。為了過濾掉這個圖標,需要在匹配規則中填寫“{dede:trim replace=””}<p>(.*)</p>{/dede:trim}”。
填寫后,如(圖32)所示,
圖32-開始部分的匹配規則及其過濾規則
(b)找到圖集內容的結束部分,因為涉及到分頁部分,所以應該選取分頁結束的位置,如圖33所示,
圖33-圖集內容的結束部分
很明顯,這里應選取“<li style=”text-align:center;”><script type=”text/javascript”>”作為圖片集合和圖集內容的結束部分。填寫完成后,如(圖34)所示,
圖34-結束部分的匹配規則及其過濾規則
到這里,“新增采集節點:第二步設置內容字段獲取規則”,就設置完成了。來看一下整個配置頁面,如(圖35)所示,
圖35-設置后的新增采集節點:第二步設置內容字段獲取規則
檢查無誤后,單擊“保存并測試”。如果之前設置正確,單擊后,將會進入“新增采集節點:測試內容字段設置”頁面并看到相應的文章內容。如(圖36)所示,
圖36-新增采集節點:測試內容字段設置
確定正確無誤后,如果單擊“僅保存”,系統將會提示“成功保存配置“并返回”采集節點管理“界面;如果單擊“保存并開始采集“,將會進入”采集指定節點“界面。否則,請單擊“返回上一步進行修改”。
關于第二節的介紹就到這里。
本文的采集規則:
{dede:listconfig}
{dede:noteinfo notename=”圖片采集” channelid=”2″ macthtype=”string”
refurl=”http://www.zcool.com.cn/show/ZNTc1MDT=.html” sourcelang=”utf-8″ cosort=”asc”
isref=”no” exptime=”10″ usemore=”0″ /}
{dede:listrule sourcetype=”batch” rssurl=”http://” regxurl=”http://www.zcool.com.cn/shows/0!0!0!200!(*)!1!0!0/”
startid=”1″ endid=”1″ addv=”1″ urlrule=”area” musthas=”=.html”
nothas=”” listpic=”1″ usemore=”0″}
{dede:addurls}{/dede:addurls}
{dede:batchrule}{/dede:batchrule}
{dede:regxrule}{/dede:regxrule}
{dede:areastart}<ul>{/dede:areastart}
{dede:areaend}</ul>{/dede:areaend}
{/dede:listrule}
{/dede:listconfig}
{dede:itemconfig}
{dede:sppage sptype=’full’ srul=’1′ erul=’5′}<div>[內容]</div>{/dede:sppage}
{dede:previewurl}http://www.zcool.com.cn/show/ZNTc1MDT=.html{/dede:previewurl}
{dede:keywordtrim}{/dede:keywordtrim}
{dede:descriptiontrim}{/dede:descriptiontrim}
{dede:item field=’title’ value=” isunit=” isdown=”}
{dede:match}”<h1>[內容]</h1>{/dede:match}
{dede:trim replace=””}<img([^>]*)>{/dede:trim}
{dede:function}{/dede:function}
{/dede:item}{dede:item field=’writer’ value=” isunit=” isdown=”}
{dede:match}{/dede:match}
{dede:function}{/dede:function}
{/dede:item}{dede:item field=’source’ value=” isunit=” isdown=”}
{dede:match}<li><p>[內容]</p>{/dede:match}
{dede:trim replace=””}<a([^>]*)>{/dede:trim}
{dede:trim replace=””}</a>{/dede:trim}
{dede:trim replace=””}<img([^>]*)>{/dede:trim}
{dede:function}{/dede:function}
{/dede:item}{dede:item field=’pubdate’ value=” isunit=” isdown=”}
{dede:match}<span>[內容]小時前</span>{/dede:match}
{dede:function}{/dede:function}
{/dede:item}{dede:item field=’imgurls’ value=” isunit=’1′ isdown=’1′}
{dede:match}<div>[內容]<li style=”text-align:center;”><script type=”text/javascript”>{/dede:match}
{dede:trim replace=””}<p>(.*)</p>{/dede:trim}
{dede:function}@me=TurnImageTag(@me);
{/dede:function}
{/dede:item}{dede:item field=’body’ value=” isunit=’1′ isdown=’1′}
{dede:match}條評論<br/>[內容]</p>{/dede:match}
{dede:trim replace=””}</span>{/dede:trim}
{dede:function}{/dede:function}
{/dede:item}
{/dede:itemconfig}