前嗅ForeSpider腳本教程-鏈接抽取:鏈接在源碼的js變量裏寫腳本

今天,小編給大家帶來的教程爲:前嗅ForeSpider腳本教程-鏈接抽取中,鏈接在源碼的js變量裏寫腳本的實戰教程。具體內容如下:

 

鏈接地址可在源碼中查找到。在目標網頁右鍵,選擇“查看源代碼”,鍵盤點擊“ctrl+F”,查找目標鏈接所在位置。目標鏈接存在於js變量中。

1.鏈接需要循環

場景:要抽取的一組鏈接都在源碼中出現,集中分佈。

示例:獲取今日頭條熱點新聞列表頁鏈接

查看列表頁第一條鏈接,鏈接地址爲“https://www.toutiao.com/group/6637244114360336900/”,在該網頁,鼠標右鍵,選擇查看源代碼,“ctrl+F”,查找字符串“6637244114360336900”,定位其位置。

觀察可知,中文字符都以”\u”開頭的字符串表示,顯示爲unicode編碼格式,由“站長工具”在線轉編碼之後即可展示中文。此外鏈接地址分割符“/”加了轉義符“\”,不過軟件已經幫助我們做了轉義處理,此處無需擔心,直接賦值即可。

將轉義後的字符串放置於JSON查看器中(以notepad++的插件“JSON Viewer”爲例),則可觀察到數據形式爲json。

腳本實例:

var str=DOM.GetSource().ToStr(); //獲取本鏈接地址網頁源碼

var jsonStr=DOM.UnEscape(str.Middle("data = ","]};")+"]}");  //截取數據所在字符串\

jScript js;//定義JS變量

var obj=js.RunJson(jsonStr);//解析JSON串,並返回JSON對象

var ar=obj.real_time_news;//獲取目標數據所在數組

for(int i=0;i<ar.size;i++)

{//通過循環添加鏈接

url u;
u.title=ar[i].title;
u.urlname="https://www.toutiao.com"+ar[i].open_url;
u.entryid=CHANN.id;
u.tmplid=2;
RESULT.AddLink(u);
}

2.鏈接不循環

場景:要抽取少數鏈接,位置分散,如天貓分類頁(三級分類)。

實例:暫無。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章