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