目錄
    采集B站UP主數據
    視頻教程:模板下載:
    l 采集網站

    【場景描述】采集B站動漫分類中所有UP主數據。

    【源網站介紹】

    B站,全名嗶哩嗶哩,英文名稱:bilibili,https://www.bilibili.com/v/channel/type/1,現為中國年輕世代高度聚集的文化社區和視頻平臺,該網站于2009年6月26日創建,被粉絲們親切地稱為“B站”   。

    【使用工具】前嗅ForeSpider數據采集系統,點擊下方鏈接可免費下載

    http://www.bendalayoga.com/view/forespider/view/download.html

    【入口網址】https://www.bilibili.com/v/channel/type/1

    【采集內容】

    采集B站動漫分類中所有up主信息,字段包括:up主名稱、id、視頻名稱、視頻鏈接、觀看量、點贊量等。

     


    【采集效果】如下圖所示:

     

    l 思路分析

    配置思路概覽:

    圖片

     l 配置步驟

    1. 新建采集任務

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

     


    2.獲取類表請求鏈接

    ①在瀏覽器上觀察該頁面翻頁,翻頁類型為瀑布流翻頁,推測翻頁鏈接在請求中。

    ②點擊F12,繼續往后翻頁,觀察可找到翻頁請求在如下圖所示的請求中。

     

     

    ③復制翻頁請求鏈接:

     


    ④同樣方法,找到第三頁和第四頁請求鏈接,并復制出來。

    ⑤觀察鏈接,發現規律如下圖所示:

     


    ⑥寫翻頁鏈接腳本,具體操作如下所示:

     


    腳本文本:

    url u;//定義一個url
    for(int i = 1;i <= 20;i++)//寫一個for循環,采集前20頁內容
    {
    var y=i*7;//定義y為i*7
    u.title = i;//輸出url名稱為頁數
    u.urlname = "https://api.bilibili.com/x/web-interface/web/channel/category/channel_arc/list?id=1&offset="+y;//根據翻頁請求規律拼翻頁請求鏈接
    u.entryid = CHANN.id;//
    u.tmplid = 2;關聯模板2
    RESULT.AddLink(u);
    }

    ⑦采集預覽,如下圖所示,表示翻頁鏈接已生成。

     


    3.采集up主信息

    ①在瀏覽器中打開任意一個翻頁請求的鏈接,可發現up主的信息就在返回的數據值中。而且每個【archive_channels】的數組中有6個值,每個值中的【archives】數組中有6個值即為每個up主的信息。

     


    ②通過觀察可發現,視頻鏈接規律為:

    https://www.bilibili.com/video/+視頻id+?spm_id_from=

    Up主主頁鏈接為:

    https://space.bilibili.com/+up主id+?spm_id_from=

    ③新建模板02,在其下新建一個數據抽取。

     


    ④新建一個數據表單,具體步驟和字段屬性如下所示:

     


    ⑤關聯數據表單,如下圖所示:

     


    ⑥腳本取值,新建腳本,具體如下圖所示:

     


    腳本文本如下所示:

    var ur=URL.urlname;//定義ur變量為當前請求鏈接,即翻頁請求鏈接
    var doc = EXTRACT.OpenDoc(CHANN, ur, "");//打開請求
    var tstr = doc.GetDom().GetSource().ToStr().Right("archive_channels\":");//打開請求中的dom樹,獲取源碼,并取archive_channels":右側的所有源碼
    jScript js;//定義一個js
    var obj = js.RunJson(tstr);//執行tstr代碼并返回一個對象
    var k=1;//定義k為1,為后續自增主鍵準備
    for(var i=0;i<=6;i++){//for循環取【archive_channels】中的6個對象
        var obj_a=obj[i].archives;//定義obj_a為第i個對象中的【archives】數組
        for(var j=0;j<=5;j++){//for循環取【archives】中的6個對象
            var obj_b=obj_a[j];//obj_b為數組中的第j個對象
            var title=obj_b.name;//title為j對象中的name值
            var id=obj_b.id;//id為j對象中的id值
            var view_count=obj_b.view_count;//view_count為j對象中的view_count值
            var like_count=obj_b.like_count;//like_count為j對象中的like_count值
            var author_name=obj_b.author_name;//author_namet為j對象中的author_name值
            var author_id=obj_b.author_id;//author_id為j對象中的author_id值
            var bvid=obj_b.bvid;//bvid為j對象中的bvid值
            record re;
            re.id= k;//主鍵
            re.title = title;//視頻名
            re.videoid = id;//視頻id
            re.view_count = view_count; //播放量
            re.like_count = like_count;//點贊量
            re.author_name = author_name;//up主名
            re.author_url = "https://space.bilibili.com/"+author_id+"?spm_id_from=";//uo主主頁鏈接
            re.videourl ="https://www.bilibili.com/video/"+bvid+"?spm_id_from==";//視頻頁鏈接
            RESULT.AddRec(re,this.schemaid);
            k=k+1;//k自增
       }
    }

    EXTRACT.CloseDoc(doc);//關閉請求

    ⑥采集預覽


     

    l 采集步驟

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

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

    選擇【數據建表】,點擊【表單列表】中該模板的表單,在【關聯數據表】中選擇【創建】,表名稱自定義,這里命名為【bilibili】(注意命名不能用數字和特殊符號),點擊【確定】。創建完成,勾選數據表,并點擊右上角保存按鈕。

     


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

     


    ③采集中:

     


    ④采集結束后,可以在【數據瀏覽】中,選擇數據表查看采集數據,并可以導出數據。

     


    ⑤導出的文件打開如下圖所示:



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