一種社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,尤其涉及一種社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取 樣方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的飛速發(fā)展,互聯(lián)網(wǎng)變成了海量信息的載體,如何從送些數(shù)據(jù)中有挖 掘出能被人們利用的信息變成了一個(gè)巨大的挑戰(zhàn)。網(wǎng)絡(luò)爬蟲(chóng)是一個(gè)能夠自動(dòng)爬取網(wǎng)頁(yè)的程 序,它是搜索引擎的一部分,從互聯(lián)網(wǎng)爬取網(wǎng)頁(yè),為搜索引擎提供數(shù)據(jù)。傳統(tǒng)爬蟲(chóng)指定若干 個(gè)初始網(wǎng)頁(yè)的U化開(kāi)始抓取,在抓取網(wǎng)頁(yè)的過(guò)程中,對(duì)所抓取網(wǎng)頁(yè)進(jìn)行初步解析,若發(fā)現(xiàn)當(dāng) 前頁(yè)面上存在新的U化,就抽取出來(lái)并放入隊(duì)列,直到程序滿足結(jié)束條件停止。聚焦爬蟲(chóng)的 爬取流程相對(duì)較為復(fù)雜,需要對(duì)網(wǎng)頁(yè)進(jìn)行解析,然后通過(guò)相關(guān)算法過(guò)濾掉與主題無(wú)關(guān)的鏈 接,留下與主題有關(guān)的鏈接并將其放入U(xiǎn)RL隊(duì)列中W等被待抓取。然后,將根據(jù)相關(guān)搜索算 法從隊(duì)列中選擇要抓取的網(wǎng)頁(yè)U化,W上步驟重復(fù)執(zhí)行,直到程序滿足結(jié)束條件停止。另外, 系統(tǒng)將存儲(chǔ)所有獲取的網(wǎng)頁(yè)數(shù)據(jù),對(duì)其進(jìn)行一定的分析和處理,并建立索引,W供將來(lái)的查 詢和檢索;對(duì)于聚焦爬蟲(chóng)來(lái)說(shuō),送一過(guò)程所產(chǎn)生的分析結(jié)果還可W指引爬取程序爬取去定 向爬取更有用的微博數(shù)據(jù)。
[0003] 相對(duì)于通用網(wǎng)絡(luò)爬蟲(chóng),聚焦爬蟲(chóng)也存在W下問(wèn)題需要解決;對(duì)抓取目標(biāo)的描述和 定義無(wú)法做到足夠準(zhǔn)確;不能保證對(duì)網(wǎng)頁(yè)或數(shù)據(jù)分析的準(zhǔn)確性和過(guò)濾信息的無(wú)用性;對(duì) U化的搜索策略還不夠優(yōu)秀,有待提升。
[0004] 網(wǎng)頁(yè)分析算法與U化搜索策略的制訂依據(jù)抓取目標(biāo)的描述和定義。而對(duì)網(wǎng)頁(yè)抓取 行為W及搜索引擎所提供的服務(wù)形式依據(jù)對(duì)網(wǎng)頁(yè)的分析算法和U化隊(duì)列的排序算法。送兩 個(gè)部分的算法又是密不可分的。
[0005] 聚焦爬蟲(chóng)對(duì)抓取目標(biāo)的描述可分為Η種;基于目標(biāo)網(wǎng)頁(yè)特征、基于目標(biāo)數(shù)據(jù)模式 和基于領(lǐng)域概念。
[0006] 基于目標(biāo)網(wǎng)頁(yè)特征爬蟲(chóng)的對(duì)象一般為網(wǎng)站和網(wǎng)頁(yè),對(duì)其數(shù)據(jù)進(jìn)行抓取、存儲(chǔ)并索 引??蒞采取根據(jù)種子樣本的獲取方式,該方式可分為:
[0007] (1)預(yù)先設(shè)定的初始抓取種子樣本。
[0008] (2)預(yù)先設(shè)定的網(wǎng)頁(yè)的分類目錄和與分類目錄對(duì)應(yīng)的種子樣本,如百度分類結(jié)構(gòu) 等。
[0009] (3)通過(guò)分析用戶的上網(wǎng)行為來(lái)確定的抓取目標(biāo)樣本,可W采取W下兩種方法。分 別為;用戶在瀏覽過(guò)程中主動(dòng)標(biāo)注過(guò)的抓取樣本;通過(guò)分析用戶日志來(lái)得到其訪問(wèn)模式W 及相關(guān)樣本。
[0010] 但是由于微博數(shù)據(jù)量龐大,且微博數(shù)據(jù)更新速度極快,現(xiàn)有爬蟲(chóng)技術(shù)因需要人為 設(shè)定和制定策略等因素,無(wú)法滿足微博數(shù)據(jù)的高時(shí)效性要求。因此,亟需一種能夠自適應(yīng)爬 取微博中最有議論價(jià)值、受用戶轉(zhuǎn)發(fā)度極高的微博數(shù)據(jù)的系統(tǒng)。
【發(fā)明內(nèi)容】
[0011] 本發(fā)明提出了一種社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法,包括如下步驟:
[0012] 初步取樣步驟:自動(dòng)與社交媒體的數(shù)據(jù)接口建立通信,從所述社交媒體中獲取一 條W上微博數(shù)據(jù);
[0013] 熱點(diǎn)檢測(cè)步驟:檢測(cè)所述微博數(shù)據(jù)的屬性,若所述微博轉(zhuǎn)發(fā)量大于500次,則所 述微博數(shù)據(jù)判定為熱點(diǎn)微博數(shù)據(jù),同時(shí)建立熱點(diǎn)微博列表用于保存和監(jiān)測(cè)所述熱點(diǎn)微博數(shù) 據(jù);
[0014] 熱點(diǎn)獲取步驟:通過(guò)所述數(shù)據(jù)接口從所述社交媒體中獲取所述熱點(diǎn)微博列表中各 熱點(diǎn)微博數(shù)據(jù)的所有轉(zhuǎn)發(fā)微博,構(gòu)建所述熱點(diǎn)微博數(shù)據(jù)的完整轉(zhuǎn)發(fā)鏈。
[0015] 本發(fā)明提出的所述社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法中,所述初步取樣 步驟中,自動(dòng)與社交媒體的公共微博讀取接口建立通信,實(shí)時(shí)獲取所述社交媒體中的公共 微博數(shù)據(jù)。
[0016] 本發(fā)明提出的所述社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法中,通過(guò)重復(fù)控制 調(diào)用數(shù)據(jù)接口、改變爬取策略W及采用多線程爬取的方式調(diào)整對(duì)所述公共微博讀取接口的 訪問(wèn)頻次。
[0017] 本發(fā)明提出的所述社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法中,所述初步取樣 步驟中,自動(dòng)與社交媒體的用戶微博讀取接口建立通信,實(shí)時(shí)獲取指定高活躍度用戶發(fā)布 的微博數(shù)據(jù)。
[0018] 本發(fā)明提出的所述社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法中,建立用戶監(jiān)控 列表,所述用戶監(jiān)控列表用于記錄并輪詢高活躍度用戶,當(dāng)所述高活躍度用戶發(fā)布微博數(shù) 據(jù)時(shí),通過(guò)所述用戶微博讀取接口實(shí)時(shí)獲取所述微博數(shù)據(jù)。
[0019] 本發(fā)明提出的所述社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法中,所述熱點(diǎn)檢測(cè) 步驟中,設(shè)定自動(dòng)檢測(cè)時(shí)間區(qū)間,當(dāng)處于所述自動(dòng)檢測(cè)時(shí)間區(qū)間時(shí),檢測(cè)先前已獲取的微博 數(shù)據(jù)的屬性。
[0020] 本發(fā)明提出的所述社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法中,設(shè)定時(shí)間界 限,在所述熱點(diǎn)微博列表中,若一條熱點(diǎn)微博數(shù)據(jù)在所述時(shí)間界限內(nèi)經(jīng)檢測(cè)未成為熱點(diǎn)微 博數(shù)據(jù)或者已獲取所有轉(zhuǎn)微博的,所述熱點(diǎn)微博數(shù)據(jù)從所述熱點(diǎn)微博列表中被移出。
[0021] 本發(fā)明提出的所述社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法中,所述時(shí)間上限 為2天。
[0022] 本發(fā)明的有益效果在于:
[0023] 本發(fā)明自適應(yīng)取樣方法能夠在第一時(shí)間獲得最有用的熱點(diǎn)微博數(shù)據(jù)。通過(guò)更新和 監(jiān)控用戶監(jiān)控列表和熱點(diǎn)微博列表,能夠24小時(shí)自動(dòng)運(yùn)行,無(wú)需手動(dòng)操作,并能夠根據(jù)不 同的爬取任務(wù)自適應(yīng)地調(diào)整訪問(wèn)頻次,W達(dá)到較優(yōu)的爬取效果。本發(fā)明可實(shí)時(shí)獲取熱點(diǎn)微 博,能立即跟蹤熱點(diǎn)微博的轉(zhuǎn)發(fā),獲取完整的熱點(diǎn)微博轉(zhuǎn)發(fā)鏈。
【附圖說(shuō)明】
[0024] 圖1是本發(fā)明社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法的示意圖。
[0025] 圖2是本發(fā)明實(shí)施例中模擬用戶登錄的示意圖。
[0026] 圖3是本發(fā)明程序流程圖。
[0027] 圖4是本發(fā)明實(shí)施例中熱點(diǎn)微博取樣數(shù)量的曲線圖。
[0028] 圖5是熱口微博轉(zhuǎn)發(fā)鏈的可視化結(jié)果的示意圖。
【具體實(shí)施方式】
[0029] 結(jié)合W下具體實(shí)施例和附圖,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。實(shí)施本發(fā)明的過(guò)程、 條件、實(shí)驗(yàn)方法等,除W下??谔峒暗膬?nèi)容之外,均為本領(lǐng)域的普遍知識(shí)和公知常識(shí),本發(fā) 明沒(méi)有特別限制內(nèi)容。
[0030] 本發(fā)明社交媒體中熱點(diǎn)微博數(shù)據(jù)的自適應(yīng)取樣方法主要包括如下步驟:
[0031] 初步取樣步驟:自動(dòng)與社交媒體的數(shù)據(jù)接口建立通信,從社交媒體中獲取一條W 上微博數(shù)據(jù)。本發(fā)明主要獲取兩種微博數(shù)據(jù),分別為公共微博數(shù)據(jù)和指定高活躍度用戶的 用戶微博數(shù)據(jù),送兩種微博數(shù)據(jù)中含有熱點(diǎn)微博數(shù)據(jù)的概率更高,W提高取樣的效率。
[0032] 熱點(diǎn)檢測(cè)步驟;檢測(cè)微博數(shù)據(jù)的屬性,所述微博轉(zhuǎn)發(fā)量大于500次,則微博數(shù)據(jù)判 定為熱點(diǎn)微博數(shù)據(jù),同時(shí)建立熱點(diǎn)微博列表用于保存和監(jiān)測(cè)熱點(diǎn)微博數(shù)據(jù)。參閱圖1,當(dāng)判 斷為熱點(diǎn)微博數(shù)據(jù)之后,在獲取其轉(zhuǎn)發(fā)微博的同時(shí),亦將其存入熱點(diǎn)微博列表中。
[0033] 熱點(diǎn)獲取步驟:通過(guò)數(shù)據(jù)接口從社交媒體中獲取熱點(diǎn)微博列表中各熱點(diǎn)微博數(shù)據(jù) 的所有轉(zhuǎn)發(fā)微博。獲取轉(zhuǎn)發(fā)微博可分為兩種啟動(dòng)方式,分為自動(dòng)監(jiān)測(cè)方式和時(shí)間觸發(fā)方式。 參閱圖1,自動(dòng)監(jiān)測(cè)方式即通過(guò)實(shí)時(shí)監(jiān)測(cè)熱點(diǎn)微博列表中是否產(chǎn)生新的轉(zhuǎn)發(fā)微博,若產(chǎn)生則 實(shí)時(shí)獲取,可快速建立完整的微博轉(zhuǎn)發(fā)鏈構(gòu)。而時(shí)間觸發(fā)方式則通過(guò)計(jì)時(shí),當(dāng)時(shí)間達(dá)到自動(dòng) 檢測(cè)時(shí)間區(qū)間時(shí),則對(duì)已獲取的微博數(shù)據(jù)進(jìn)行檢測(cè),W確認(rèn)其中是否存在熱點(diǎn)微博數(shù)據(jù),若 存在,則立即調(diào)用數(shù)據(jù)接口 W構(gòu)建熱點(diǎn)微博數(shù)據(jù)的完整轉(zhuǎn)發(fā)鏈。
[0034] 關(guān)于熱點(diǎn)微博列表的維護(hù)和更新,本發(fā)明設(shè)定了時(shí)間界限,在熱點(diǎn)微博列表中,若 一條熱點(diǎn)微博數(shù)據(jù)在時(shí)間界限內(nèi)經(jīng)檢測(cè)未成為熱點(diǎn)微博數(shù)據(jù)或者已獲取所有轉(zhuǎn)微博的,熱 點(diǎn)微博數(shù)據(jù)從熱點(diǎn)微博列表中被移出。該時(shí)間上限為2天。
[0035] W下結(jié)合實(shí)例對(duì)本發(fā)明自適應(yīng)取樣方法的各步驟做進(jìn)一步說(shuō)明。
[0036] (1)自動(dòng)登錄
[0037] 大部分應(yīng)用程序編程接口(Application Programming Inte;rface,API)的訪問(wèn)如 發(fā)表微博、獲取私信,關(guān)注都需要用戶身份。目前微博開(kāi)放平臺(tái)用戶身份鑒權(quán)有〇Auth2. 0 和Basic OAuth(僅用于應(yīng)用所屬開(kāi)發(fā)者調(diào)試接口)。0Auth2. 0較1. 0相比,整個(gè)授權(quán)驗(yàn)證 流程更簡(jiǎn)單、更安全,也是未來(lái)最主要的用戶身份驗(yàn)證和授權(quán)方式。
[0038] 參閱圖2,基于新浪微博API獲取數(shù)據(jù)的前提是進(jìn)行用戶授權(quán),并獲得訪問(wèn)令牌 access token,然后才能通過(guò)調(diào)用新浪微博API獲取數(shù)據(jù)。按照新浪微博的授權(quán)流程,用戶 需先登錄,獲得重定向的U化中的代碼code,然后用code換取access token,送個(gè)過(guò)程需要 手動(dòng)操作。送嚴(yán)重影響了爬取程序的自動(dòng)化,所W本發(fā)明設(shè)計(jì)了模擬用戶登錄過(guò)程,由程序 來(lái)自動(dòng)解析并獲取重定向后的U化中的code,然后自動(dòng)調(diào)用微博接口換取access token, 至此自動(dòng)授權(quán)完成,送種設(shè)計(jì)提高了系統(tǒng)的執(zhí)行效率。
[0039] (2)獲取最新公共微博數(shù)據(jù)與用戶微博數(shù)據(jù)
[0040] 登錄后本發(fā)明將自動(dòng)與公共微博讀取接口建立連接。W新浪微博為例,調(diào)用新浪 微博API的公共微博讀取接口 public_timeline。public_timeline該接口的作