今天,小編給大家帶來的教程爲:前嗅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.鏈接不循環
場景:要抽取少數鏈接,位置分散,如天貓分類頁(三級分類)。
實例:暫無。