前嗅ForeSpider指令碼教程-連結抽取:應用場景及連結在原始碼的html標籤裡寫指令碼
今天,小編給大家帶來的教程為:前嗅ForeSpider指令碼教程中,連結抽取的應用場景,以及連結在原始碼的html標籤裡寫指令碼的實戰教程。具體內容如下:
一.應用場景
當需要手動新增連結時,可新增連結指令碼。
在“連結指令碼處”,可能用到的類為extractor 、result、url、grabDoc、dom。
二.連結在原始碼的html標籤裡
連結地址可在原始碼中查詢到。在目標網頁右鍵,選擇“檢視原始碼”,鍵盤點選“ctrl+F”,查詢目標連結所在位置。目標連結存在於標籤中。
1.連結需要迴圈
場景:比如翻頁等規律相同的一系列目標連結,存在於一個大的ul標籤或者div標籤裡。
示例:獲取CSDN首頁文章列表連結。
在該網頁右鍵選擇“檢視原始檔”,查詢第一條連結的連結地址,定位目標資料位置。
將該原始碼貼上到notepad++中,選擇語言為html,搜尋目標資料的所在位置“ul”標籤的id值。
由圖可知,列表頁文章連結位於每個li中的a標籤的href中。
指令碼例項:暫無。
2.連結不迴圈
場景:獲取更多連結,連結不像翻頁那頁具有自增性的規律。
示例:獲取該網站更多的招標公告資訊。
獲取更多的招標公告資訊,需要點選“更多”按鈕。在該網頁右鍵選擇“檢視原始檔”,定位連結所在位置。
因"<a>"標籤名,和父級<div>的class屬性都在多處存在,因此需要再向上查詢節點,直到id為tab2-list的<div>。
指令碼例項:
var div = DOM.FindId("tab2-list");//先查詢div var a = DOM.FindClass("more","a",div );//從上一行找到的div開始查詢,class屬性為more的a標籤。 url u; u.urlname = "http://www.bgpc.gov.cn"+a.href;//拼接完整的連結地址 u.title = "更多";//填寫title u.entryId = CHANN.id; u.tmplId = 2; RESULT.AddLink(u);