一.場景簡介
2.入口網址:https://weixin.sogou.com/weixin?type=1&s_from=input&query=%E5%89%8D%E5%97%85&ie=utf8&_sug_=n&_sug_type_=
3.採集內容:
二.思路分析
|配置思路概覽
|配置步驟
1. 新建採集任務
2.關鍵詞配置
①在入口頁搜尋不同關鍵詞,發現不同關鍵詞搜尋結果的連結,只更換了圖中紅框部分,而紅框部分正是經過轉碼後的關鍵詞,於是得出關鍵詞連結的拼接規則為:
https://weixin.sogou.com/weixin?type=2&s_from=input&query=關鍵詞
②得到關鍵詞連結拼接規則後,開始配置關鍵詞搜尋:
④具體配置指令碼如下:
新增一個或多個關鍵詞,並儲存,如下圖所示。(多個關鍵詞用英文;隔開)
⑤效果預覽:
如果採集預覽異常,可開啟前嗅官網,諮詢技術支援。
3.翻頁配置
關鍵詞配置完成,下一步是獲取關鍵詞搜尋結果中的全部翻頁連結。
①同樣選擇【指令碼視窗】,配置翻頁尾本。
②對關鍵詞搜尋出的網頁翻頁,觀察網頁地址的變化。
https://weixin.sogou.com/weixin?query=none&_sug_type_=&s_from=hotnews&_sug_=n&type=2&page=2&ie=utf8 第二頁
https://weixin.sogou.com/weixin?query=none&_sug_type_=&s_from=hotnews&_sug_=n&type=2&page=3&ie=utf8 第三頁
發現翻頁連結是在原地址中增加了“&_sug_type_=&s_from=hotnews&_sug_=n&type=2&page=2&ie=utf8”部分,隨著頁碼的改變,僅有page引數的值在變化。page為頁碼的配置引數,其它不變部分,直接拼接在連結中即可。
④效果預覽:
4.連結抽取
①在原有模板基礎上,右鍵選擇【新增模板】,並新建一個連結抽取,如下圖所示:
⑤.採集預覽如下所示:
如果採集預覽沒有出來,可以開啟前嗅官網,諮詢技術支援。
5.資料抽取
①連結抽取完成進入資料頁,在原有模板基礎上,右鍵選擇【新增模板】,新新增的模板,右鍵【新增資料抽取】。
id欄位:主鍵欄位,採集內容選擇【主鍵】-【網頁主鍵】,主鍵為當前網頁的MD5值。
title欄位:指令碼如下所示
content欄位:
用指令碼表示為:
keywords欄位:關鍵詞欄位,該欄位是用指令碼處理的,由於關鍵詞欄位僅是頻道指令碼中的區域性變數,且後期頁面均沒有出現,所以需要將關鍵詞欄位賦值在全域性變數中,才能在資料抽取時將關鍵詞欄位提取出來,此處將其賦值與全域性變數title。
同理,資料表中需要採集當前資料在第幾頁出現,而頁面資料同樣為翻頁模板中的區域性變數,後面模板無法提取,所以需要將當前翻頁尾本中的頁數記錄在全域性變數中,同樣將頁數記錄在title中以“#”與關鍵詞分隔。
當前資料出現在某頁第幾行,頁碼已經記錄在全域性變數title中,連結抽取中當前連結行數也是唯一出現的區域性變數,同樣需要記錄才能傳值,於是將行數也賦值在title中以“*”與頁碼分隔。
所以最終記錄在title中的值包含以下部分:
對於keywords欄位來說,取出全域性變數title中“@”左邊部分即可。
page欄位:頁碼,同keywords欄位,取全域性變數title中“@”和“#”中間部分。
raw欄位:行數,同keywords欄位,取全域性變數title中“#”和“*”中間部分。
gettime欄位:網頁採集時間,採集內容選擇【時間資訊】-【網頁獲取時間】
url欄位:網頁地址,採集內容選擇【網頁資訊】-【網頁地址】
temp_name欄位:模板名稱,採集內容選擇【採集任務資訊】-【任務名稱】
指令碼如下圖所示:
⑤以上完成全部欄位配置,效果預覽如下:
如果採集預覽有欄位顯示異常,可以將爬蟲中的模擬瀏覽器版本設定為:IE瀏覽器9,如下圖所示,之後再嘗試。
三.採集步驟
模板配置完成,採集預覽沒問題後,可進行資料採集。
①首先要建立採集資料表:
建立完成,勾選資料表。
四.課後回顧
GetSearch():返回關鍵詞列表中的關鍵詞。
Search():反覆呼叫來遍歷關鍵詞列表。
FindClass(class名,標籤型別,開始查詢結點):當符合條件的class名稱唯一時,使用class名來查詢結點。
FindName(標籤名,開始查詢結點):當查詢範圍內,符合條件的資料標籤唯一時,可以使用標籤名稱查詢標籤結點。
GetTextAll(需要獲取文字的結點,使用的字元編碼):獲取該html標籤節點及所有子節點的可見文字。
Child:孩子頻道節點。
StdUrl(base,strUrl):連結地址絕對轉化,base表示基連結地址,strUrl表示待轉化連結地址。
Right(flag):返回字串右邊的字串,flag表示所取長度或起始字元(串)。
Left(flag):返回字串右邊的字串,flag表示所取長度或起始字元(串)
Middle(pos,len):返回字串的中間字串,pos表示起始位置或起始字元(串),len表示所取長度或終止字元(串)。
一.場景簡介
2.入口網址:https://weixin.sogou.com/weixin?type=1&s_from=input&query=%E5%89%8D%E5%97%85&ie=utf8&_sug_=n&_sug_type_=
3.採集內容:
二.思路分析
|配置思路概覽
|配置步驟
1. 新建採集任務
2.關鍵詞配置
①在入口頁搜尋不同關鍵詞,發現不同關鍵詞搜尋結果的連結,只更換了圖中紅框部分,而紅框部分正是經過轉碼後的關鍵詞,於是得出關鍵詞連結的拼接規則為:
https://weixin.sogou.com/weixin?type=2&s_from=input&query=關鍵詞
②得到關鍵詞連結拼接規則後,開始配置關鍵詞搜尋:
④具體配置指令碼如下:
新增一個或多個關鍵詞,並儲存,如下圖所示。(多個關鍵詞用英文;隔開)
⑤效果預覽:
如果採集預覽異常,可開啟前嗅官網,諮詢技術支援。
3.翻頁配置
關鍵詞配置完成,下一步是獲取關鍵詞搜尋結果中的全部翻頁連結。
①同樣選擇【指令碼視窗】,配置翻頁尾本。
②對關鍵詞搜尋出的網頁翻頁,觀察網頁地址的變化。
https://weixin.sogou.com/weixin?query=none&_sug_type_=&s_from=hotnews&_sug_=n&type=2&page=2&ie=utf8 第二頁
https://weixin.sogou.com/weixin?query=none&_sug_type_=&s_from=hotnews&_sug_=n&type=2&page=3&ie=utf8 第三頁
發現翻頁連結是在原地址中增加了“&_sug_type_=&s_from=hotnews&_sug_=n&type=2&page=2&ie=utf8”部分,隨著頁碼的改變,僅有page引數的值在變化。page為頁碼的配置引數,其它不變部分,直接拼接在連結中即可。
④效果預覽:
如果採集預覽異常,可開啟前嗅官網,諮詢技術支援。
4.連結抽取
①在原有模板基礎上,右鍵選擇【新增模板】,並新建一個連結抽取,如下圖所示:
⑤.採集預覽如下所示:
如果採集預覽沒有出來,可以開啟前嗅官網,諮詢技術支援。
5.資料抽取
①連結抽取完成進入資料頁,在原有模板基礎上,右鍵選擇【新增模板】,新新增的模板,右鍵【新增資料抽取】。
id欄位:主鍵欄位,採集內容選擇【主鍵】-【網頁主鍵】,主鍵為當前網頁的MD5值。
title欄位:指令碼如下所示
content欄位:
用指令碼表示為:
keywords欄位:關鍵詞欄位,該欄位是用指令碼處理的,由於關鍵詞欄位僅是頻道指令碼中的區域性變數,且後期頁面均沒有出現,所以需要將關鍵詞欄位賦值在全域性變數中,才能在資料抽取時將關鍵詞欄位提取出來,此處將其賦值與全域性變數title。
同理,資料表中需要採集當前資料在第幾頁出現,而頁面資料同樣為翻頁模板中的區域性變數,後面模板無法提取,所以需要將當前翻頁尾本中的頁數記錄在全域性變數中,同樣將頁數記錄在title中以“#”與關鍵詞分隔。
當前資料出現在某頁第幾行,頁碼已經記錄在全域性變數title中,連結抽取中當前連結行數也是唯一出現的區域性變數,同樣需要記錄才能傳值,於是將行數也賦值在title中以“*”與頁碼分隔。
所以最終記錄在title中的值包含以下部分:
對於keywords欄位來說,取出全域性變數title中“@”左邊部分即可。
page欄位:頁碼,同keywords欄位,取全域性變數title中“@”和“#”中間部分。
raw欄位:行數,同keywords欄位,取全域性變數title中“#”和“*”中間部分。
gettime欄位:網頁採集時間,採集內容選擇【時間資訊】-【網頁獲取時間】
url欄位:網頁地址,採集內容選擇【網頁資訊】-【網頁地址】
temp_name欄位:模板名稱,採集內容選擇【採集任務資訊】-【任務名稱】
指令碼如下圖所示:
⑤以上完成全部欄位配置,效果預覽如下:
如果採集預覽有欄位顯示異常,可以將爬蟲中的模擬瀏覽器版本設定為:IE瀏覽器9,如下圖所示,之後再嘗試。
如果採集預覽異常,可開啟前嗅官網,諮詢技術支援。
三.採集步驟
模板配置完成,採集預覽沒問題後,可進行資料採集。
①首先要建立採集資料表:
建立完成,勾選資料表。
四.課後回顧
GetSearch():返回關鍵詞列表中的關鍵詞。
Search():反覆呼叫來遍歷關鍵詞列表。
FindClass(class名,標籤型別,開始查詢結點):當符合條件的class名稱唯一時,使用class名來查詢結點。
FindName(標籤名,開始查詢結點):當查詢範圍內,符合條件的資料標籤唯一時,可以使用標籤名稱查詢標籤結點。
GetTextAll(需要獲取文字的結點,使用的字元編碼):獲取該html標籤節點及所有子節點的可見文字。
Child:孩子頻道節點。
StdUrl(base,strUrl):連結地址絕對轉化,base表示基連結地址,strUrl表示待轉化連結地址。
Right(flag):返回字串右邊的字串,flag表示所取長度或起始字元(串)。
Left(flag):返回字串右邊的字串,flag表示所取長度或起始字元(串)
Middle(pos,len):返回字串的中間字串,pos表示起始位置或起始字元(串),len表示所取長度或終止字元(串)。