目錄

    一.場景簡介

    場景描述:通過搜狗搜索的知乎搜索欄目,按關鍵詞搜索采集知乎正文。

    入口網址:https://zhihu.sogou.com


     

    采集內容采集的數據為知乎文章的標題和內容

    二.思路分析

    采集知乎的關鍵點在于:關鍵詞配置鏈接、翻頁、鏈接抽取、數據抽取。配置思路如下所示:

    圖片

    配置思路

    三.配置步驟

    1. 新建采集任務

    選擇【采集配置】,點擊任務列表右上方【+】號可新建采集任務,將采集入口地址填寫在【采集地址】框中,【任務名稱】自定義即可。

    由于本次采集是通過關鍵詞采集相關內容,所以【采集類型】要勾選【關鍵詞采集】,填寫完成。

    點擊【完成】,任務列表里出現本條任務,創建成功。

    2. 關鍵詞配置

    ①在入口頁搜索不同關鍵詞,發現不同關鍵詞搜索結果的鏈接,只更換了圖中紅框部分,而紅框部分正是經過轉碼后的關鍵詞,于是得出關鍵詞鏈接的拼接規則為:

    https://www.sogou.com/sogou?query=關鍵詞

    ie=utf8&pid=sogou-wsse-ff111e4a5406ed40&insite=zhihu.com

    ②得到關鍵詞鏈接拼接規則后,開始配置關鍵詞搜索:

    點擊屏幕右下角【高級配置】,將采集地址填寫到【請求地址】中,點擊【+】添加一個參數,名稱可以自定義,此項配置是用于后期腳本能將關鍵詞從關鍵詞列表中取出,配置完成點擊【確定】即可。

    ③由于本模板是以關鍵詞搜索為入口,所以在【模板抽取配置】選擇頻道(即任務名稱),選擇【腳本窗口】,將關鍵詞搜索配置在頻道處即可。

    ④具體配置腳本如下:

    ⑤效果預覽:

    在【關鍵詞列表】中填寫關鍵詞,點擊【保存】,點擊【采集預覽】,即可看到配置效果。

    3. 翻頁配置

    關鍵詞配置完成,下一步是獲取關鍵詞搜索結果中的全部翻頁鏈接。

    ①右鍵點擊【默認模板:01】,選擇添加鏈接抽取。

    ②同樣選擇【腳本窗口】,配置翻頁腳本。

    ③對關鍵詞搜索出的網頁翻頁,觀察網頁地址的變化,發現在原地址中增加了“&sut=2674&sst0=1617764379159&lkt=1%2C1617764379044%2C1617764379044&page=2&ie=utf8”部分,隨著頁碼的改變,僅有page參數的值在變化。page為頁碼的配置參數,其它不變部分,直接拼接在鏈接中即可。

    ④具體配置腳本如下:

    ⑤效果預覽:

    4. 鏈接抽取

    這一步是在獲取的翻頁鏈接中,提取每頁全部知乎問題鏈接:

    ①在原有模板基礎上,右鍵選擇【添加模板】

    ②右鍵新添加的模板,選擇【添加鏈接抽取】

    ③以第一頁為例,查看網頁結構(可以使用F12查看,但需確認源碼與F12內容一致)。

    通過查看網頁結構,發現所需要的鏈接全部包含在“results”類中。每個鏈接塊對應一個“vrwrap”類,我們所需要的內容,全部包含在“vrwrap”類的h3結點“vrTitle”中,“vrTitle”的子結點a標簽內為該條內容的鏈接地址和標題內容。

    ④同樣選擇當前鏈接抽取,在【腳本窗口】中編寫腳本,具體腳本內容如下:

    ⑤效果預覽:

    5. 數據抽取

    ①鏈接抽取完成進入數據頁,在原有模板基礎上,右鍵選擇【添加模板】,新添加的模板,右鍵【添加數據抽取】。

    ②此時要完成數據建表的工作:

    a.選擇【數據建表】,點擊【采集數據表結構】中的【+】,即可添加數據表,名稱可以自定義。

    b.選中數據表,在數據表結構中點擊【+】,添加字段。如圖所示,我們需要的字段均以添加到數據表中,額外添加了網頁地址、獲取時間、任務名稱等是為了后期查找內容更方便。

    另外需要注意,每一個表單都需要配置主鍵字段,需要使用腳本的字段,在高級類型中選擇腳本取值才可進行腳本操作,其它字段根據實際需求配置即可。

    ③數據表配置完成,選擇【數據抽取】右側數據屬性配置,表單選擇剛建立的“知乎”數據表,則可看到表單中的字段在右側顯示。

    ④需要配置哪一個字段,點擊該字段,在右側字段屬性中配置即可,選擇腳本配置的字段,在腳本窗口中進行代碼配置。

    id字段:主鍵字段,采集內容選擇【主鍵】-【網頁主鍵】,主鍵為當前網頁的MD5值。

    title字段:網頁標題字段,采集內容選擇【網頁信息】-【網頁標題】

    content字段:正文字段,采集內容選擇【選區內可見文本】-【文章正文內容】

    keywords字段:關鍵詞字段,該字段是用腳本處理的,由于關鍵詞字段僅是頻道腳本中的局部變量,且后期頁面均沒有出現。

    所以需要將關鍵詞字段賦值在全局變量中,才能在數據抽取時將關鍵詞字段提取出來,此處將其賦值與全局變量title。

    同理,數據表中需要采集當前數據在第幾頁出現,而頁面數據同樣為翻頁模板中的局部變量,后面模板無法提取。

    所以需要將當前翻頁腳本中的頁數記錄在全局變量中,同樣將頁數記錄在title中以“#”與關鍵詞分隔。

    當前數據出現在某頁第幾行,頁碼已經記錄在全局變量title中,鏈接抽取中當前鏈接行數也是唯一出現的局部變量,同樣需要記錄才能傳值,于是將行數也賦值在title中以“*”與頁碼分隔。

    所以最終記錄在title中的值包含以下部分:

    對于keywords字段來說,取出全局變量title中“#”左邊部分即可。

    page字段:頁碼,同keywords字段,取全局變量title中“#”和“*”中間部分。

    raw字段:行數,同keywords字段,取全局變量title中“*”右側部分。

    gettime字段:網頁采集時間,采集內容選擇【時間信息】-【網頁獲取時間】

    url字段:網頁地址,采集內容選擇【網頁信息】-【網頁地址】

    web字段:網站名,腳本返回“知乎”。

    author字段:可以采用可視化配置,【采集內容】選擇【選區內可見文本】-【選區內全部文本】,【定位類型】選擇【標準定位】,Ctrl+鼠標左鍵選中選區,點擊下方【字段定位取值】,然后確認選區,字段配置完成。

    temp_name字段:模板名稱,采集內容選擇【采集任務信息】-【任務名稱】

    ⑤以上完成全部字段配置,效果預覽如下:


    四.采集步驟

    模板配置完成,采集預覽沒有問題后,可以進行數據采集。

    ①首先要建立采集數據表:

    選擇【數據建表】,點擊【表單列表】中該模板的表單,在【關聯數據表】中選擇【創建】,表名稱自定義,這里命名為zhihu(注意命名不能用數字和特殊符號),點擊【確定】。

    創建完成,勾選數據表。

    ②選擇【數據采集】,勾選任務名稱,點擊【開始采集】,則正式開始采集。

    ③可以在【數據瀏覽】中,選擇數據表查看采集數據。


    五.課堂回顧

    GetSearch():返回關鍵詞列表中的關鍵詞。

    Search():反復調用來遍歷關鍵詞列表。

    FindClass(class名,標簽類型,開始查找結點):當符合條件的class名稱唯一時,使用class名來查找結點。

    FindName(標簽名,開始查找結點):當查找范圍內,符合條件的數據標簽唯一時,可以使用標簽名稱查找標簽結點。

    GetTextAll(需要獲取文本的結點,使用的字符編碼):獲取該html標簽節點及所有子節點的可見文本。


    下載本模板鏈接:http://www.bendalayoga.com/view/forespider/view/cases.html

    女人个人私人电话联系杭州的|热久久久久香蕉无品码|爱情岛亚洲永久自拍品质|国产丶欧美丶日本不卡