【從零開始學爬蟲】採集收視率排行資料

前嗅大資料發表於2022-12-15

圖片

l 採集網站

【場景描述】採集收視率排行資料。

【源網站介紹】收視率排行網 提供收視率排行,收視率查詢,電視劇收視率,綜藝節目收視率和電視臺收視率資訊。

【使用工具】前嗅ForeSpider資料採集系統

【入口網址】

 

【採集內容】

採集收視率排行網上省級衛視收視率資料,採集欄位:標題、釋出時間、排行內容。

 

【從零開始學爬蟲】採集收視率排行資料

 

【採集效果】

如下圖所示:

【從零開始學爬蟲】採集收視率排行資料

 

 

 

l 思路分析

配置思路概覽: 

圖片

 

l 配置步驟

一.新建採集任務

選擇【採集配置】,點選任務列表右上方【+】號可新建採集任務,將採集入口地址填寫在【採集地址】框中,【任務名稱】自定義即可,點選下一步。

 

 

【從零開始學爬蟲】採集收視率排行資料

 

二.  模板配置

1.   翻頁連結採集配置

①查詢翻頁連結及其規律

在入口地址頁內開啟“F12”,按如下步驟找到翻頁地址,並複製重新整理後的翻頁連結地址

【從零開始學爬蟲】採集收視率排行資料

對比觀察翻頁連結的規律觀察:隨著翻頁變化,頁碼數與請求網址(Requestrian URL)中“page/”後的數字相關。所以,其規律為: +翻頁頁碼

找到翻頁連結位置及其規律就可以對應去編寫指令碼。

②指令碼的建立與編寫

【從零開始學爬蟲】採集收視率排行資料 【指令碼的建立與編寫】

 

指令碼文字:

url u;

         for ( var i=1;i<=165;i++){

         u.title ="第"+i+"頁";//頁碼

         u.urlname = "

         u.tmplid = 1; //模板關聯

         u.entryid = CHANN.id;

         RESULT.AddLink(u,"","");

}       

 

③檢視採集預覽  

檢視採集預覽,並將連結貼上到瀏覽器驗證一下是否採集正確。

【從零開始學爬蟲】採集收視率排行資料 【採集預覽】

 

 

2.    列表連結抽取配置

①新增連結抽取,更名為列表連結

②點選指令碼視窗

③新建指令碼

④編寫列表連結抽取指令碼

【從零開始學爬蟲】採集收視率排行資料

 

指令碼文字:

         var sta=DOM.FindClass("page-header","header",0);//定位到header標籤

         var list=sta.next;//定位下一子標籤

         while(list) {

         var link=DOM.FindClass("entry-header","header",list);//定位到header標籤

         var linkin=link.child.child.child.child.next.child.child.child;//定位到列表連結所在標籤

         url u;//定義一個url

         u.title = DOM.GetTextAll(link);//取標題

         u.urlname =linkin.href;//取列表連結

         u.entryid = this.id;

         u.tmplid =2;//關聯資料抽取模板

         link=link.next;

         list=list.next;

         RESULT.AddLink(u,"","");//傳遞連結

         }

 

⑤據觀察發現,列表連結規律為: 而翻頁連結規律為: 此處則可以用地址過濾排除翻頁連結,如圖;然後複製任意一個列表連結到瀏覽器開啟驗證

【從零開始學爬蟲】採集收視率排行資料

 

3.   資料抽取

①新建模板、新增資料抽取

如下新建模板並新增資料抽取,在示例地址框內輸入上一步複製的列表連結

【從零開始學爬蟲】採集收視率排行資料 【新建模板、新增資料抽取】

 

②資料表結構建立

如下在表結構內建立出所需採集的欄位

【從零開始學爬蟲】採集收視率排行資料 【建立表結構】

 

③關聯表單

資料抽取關聯資料結構表單

【從零開始學爬蟲】採集收視率排行資料 【關聯表單】

 

 

④建立並編寫資料抽取指令碼

如下建立指令碼,並根據網頁結構編寫資料抽取指令碼

【從零開始學爬蟲】採集收視率排行資料 【指令碼的建立與編寫】

 

指令碼文字:

record re;//定義一個record記錄集

var name=DOM.FindClass("entry-header","header",0);//定位到header標籤

var cont=DOM.FindClass("entry-content","div",0);//定位到div標籤

re.title=DOC.GetDom().GetTextAll(name.child);//取標題文字

re.time_sub=DOC.GetDom().GetTextAll(name.child.next.child);//取時間文字

re.content=DOC.GetDom().GetTextAll(cont).Right("排名");//取排名文字

re.id=MD5(URL.urlname)       ;//id

RESULT.AddRec(re,this.schemaid);//輸出結果

 

⑤檢視採集預覽

檢視採集預覽,並核對一下內容是否採集正確。

【從零開始學爬蟲】採集收視率排行資料 【採集預覽】

 

 

l 採集步驟

三、資料採集

1.建立資料表單:

選擇【資料建表】,點選【表單列表】中該模板的表單,在【關聯資料表】中選擇【建立】,表名稱自定義,這裡命名為【shoushilv】(注意命名不能用數字、文字和特殊符號),點選【確定】。建立完成,勾選資料表,並點選右上角儲存按鈕。

 

圖片 【建立關聯資料表】

 

2.開始採集

選擇【資料採集】,勾選任務名稱,點選【開始採集】,則正式開始採集。

 

圖片 【開始採集】

 

3.匯出資料

採集結束後,可以在【資料瀏覽】中,選擇資料表檢視採集資料,並可以匯出資料。

 

【從零開始學爬蟲】採集收視率排行資料 【資料瀏覽】

 

圖片 【資料匯出】

 

4.匯出的檔案開啟如下圖所示:

圖片 【檢視匯出資料】

 

本教程僅供教學使用,嚴禁用於商業用途!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69987309/viewspace-2928313/,如需轉載,請註明出處,否則將追究法律責任。

相關文章