衆所周知,對於新聞網站來講,圖片位置是沒法固定的,因此想要爬取到這些位置不固定的圖片,須要必定的技術手段。html
以某網站爲例,任務入口地址爲:http://www.chengdu.cn/web
1、對首頁進行連接抽取。數據庫
抽取文章標題,使用地址過濾「包含」.shtml。抽取到結果以下:網站
2、新建模板2,抽取圖片連接及內容數據:加密
示例地址以下:http://news.chengdu.cn/2016/0817/1810143.shtmlurl
1. 把圖片連接抽取出來。spa
進行採集預覽,查看圖片的連接規律,經過地址過濾「排除」^jpg;^jpeg;^png;^bmp;^gif。htm
2. 爲圖片設置惟一標誌與正文相關聯。教程
經過標題過濾腳本return MD5(URL.urlname)給模板2的主鍵賦值,由於新聞圖片的不規則性,須要經過某個字段將內容與圖片相關聯,因此此處標題過濾還有個做用就是將整個網頁內容傳遞到模板3,起到相關聯的做用。事件
過濾好的圖片連接以下:
3.設置字段,爲了將爬取到的內容分類的放入數據庫中。
取正文頁的數據,配置以下表單:
4.給字段賦值,從而得到數據。
經過定位及腳本取值,取到以下數據:
因爲新聞類網站文章的不規則性,因此某些字段是須要經過腳本取值實現的。腳本取值字段包括:hkey、author、news_time、content、pub_web。
如下爲字段腳本:
hkey:return MD5(URL.urlname);//返回本頁連接地址,經過MD5方法加密。
author:
return "編輯" + DOM.GetTextAll(DOM.FindClass("font_gray")).Right("編輯");//在源碼裏找到包含做者標籤的class,取出其中的文本,而後取右串「編輯」。
news_time:
return DOM.GetTextAll(DOM.FindClass("font_gray")).Left("來源");//在源碼裏找到包含新聞時間標籤的class,取出其中的文本,而後取「來源」左側的內容。
content:
return DOM.GetTextAll(DOM.FindClass("contxt"));//在源碼裏找到包含新聞事件標籤的class,取出其中的文本。
pub_web:
return DOM.GetTextAll(DOM.FindClass("font_gray")).Middle("來源:"," ");//源碼裏找到包含文章原出處標籤的class,取出其中的文本,而後取」來源」和」 」中間的內容。
三.新建模板3,抽取圖片。
取圖片,配置以下表單:
須要注意的是003爲新聞主鍵,即與模板二相對應的字段。
預覽的結果圖以下:
這樣操做不只可使內容和圖片一一對應,也便於以後的數據導出工做。