回覆列表
  • 1 # 前嗅大資料

    一.場景簡介

    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表示所取長度或終止字元(串)。

  • 中秋節和大豐收的關聯?
  • 80後男人喜歡去的場所?