社交網(wǎng)絡(luò)關(guān)系的采集方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,特別是涉及一種社交網(wǎng)絡(luò)關(guān)系的采集方法及系統(tǒng)。
【背景技術(shù)】
[0002]社交網(wǎng)絡(luò)(Social Network Services)即社會(huì)性網(wǎng)絡(luò)服務(wù),專指旨在幫助人們(一群擁有相同興趣與活動(dòng)的人)建立社會(huì)性網(wǎng)絡(luò)的互聯(lián)網(wǎng)應(yīng)用服務(wù)。這類服務(wù)往往是基于互聯(lián)網(wǎng),為用戶提供各種互相聯(lián)系、交流的方式,比如電子郵件、即時(shí)消息服務(wù)QQ、微博、
微?目等等。
[0003]在國(guó)內(nèi),代表性的社交網(wǎng)絡(luò)之一是微博,其已經(jīng)成為目前國(guó)內(nèi)最具影響力的社交平臺(tái)之一,微博的用戶之間的網(wǎng)絡(luò)關(guān)系主要包括微博用戶的粉絲信息和/或目標(biāo)微博用戶的關(guān)注用戶信息,其中粉絲是在微博里對(duì)某一微博用戶保持持續(xù)關(guān)注的用戶群體。
[0004]目前,獲取微博網(wǎng)絡(luò)關(guān)系的方法主要有通用方法是調(diào)用官方AP1、破解本地?cái)?shù)據(jù)庫(kù)等方式。但是大部分調(diào)用官方API對(duì)用戶的使用頻率進(jìn)行了限制。隨著微博系統(tǒng)的升級(jí),限制也也變得越來(lái)越嚴(yán)格,現(xiàn)在采集信息需要被采集者的授權(quán)才可以,這就相當(dāng)于基本堵死了通過(guò)API獲得用戶信息、關(guān)系的途徑。破解本地?cái)?shù)據(jù)庫(kù)不但超出了法律允許的范圍,而且難度相當(dāng)大。
【發(fā)明內(nèi)容】
[0005]為了解決【背景技術(shù)】中的技術(shù)問(wèn)題,本發(fā)明提供一種社交網(wǎng)絡(luò)關(guān)系的采集方法及系統(tǒng)。
[0006]為解決上述技術(shù)問(wèn)題,一方面,本發(fā)明提供一種社交網(wǎng)絡(luò)關(guān)系的采集方法,包括:
[0007]根據(jù)預(yù)設(shè)微博用戶信息,通過(guò)模擬移動(dòng)終端瀏覽器登錄預(yù)設(shè)微博;
[0008]設(shè)置目標(biāo)微博用戶的粉絲URL和/或關(guān)注URL ;
[0009]在登錄預(yù)設(shè)微博的所述模擬移動(dòng)終端瀏覽器中,根據(jù)設(shè)置的URL向微博服務(wù)器發(fā)請(qǐng)求,獲得所述微博服務(wù)器返回的HTML界面;
[0010]根據(jù)獲得的HTML界面,獲取所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息。
[0011 ] 進(jìn)一步,所述方法還包括:
[0012]將所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息,添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中;
[0013]根據(jù)反向取關(guān)系方法;
[0014]獲得所述目標(biāo)微博用戶的粉絲的關(guān)注用戶,并添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中;和/或
[0015]獲得所述目標(biāo)微博用戶的關(guān)注用戶的粉絲,并添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中。
[0016]進(jìn)一步,所述方法還包括:
[0017]把所述目標(biāo)微博用戶的粉絲和/或關(guān)注用戶設(shè)置為目標(biāo)微博用戶,并存儲(chǔ)在種子數(shù)據(jù)庫(kù);
[0018]搜索預(yù)設(shè)關(guān)鍵詞,獲得與所述關(guān)鍵詞相關(guān)的微博用戶;
[0019]將與關(guān)鍵詞相關(guān)的微博用戶作為目標(biāo)微博用戶,并存儲(chǔ)在種子數(shù)據(jù)庫(kù)。
[0020]進(jìn)一步,設(shè)置目標(biāo)微博用戶的粉絲URL和/或關(guān)注URL,具體包括:
[0021]讀取種子數(shù)據(jù)庫(kù)中的目標(biāo)微博用戶,設(shè)置目標(biāo)微博用戶的粉絲URL和/或關(guān)注URL0
[0022]進(jìn)一步,所述方法還包括:
[0023]定時(shí)遍歷網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中目標(biāo)微博用戶的粉絲和/或關(guān)注用戶的采集時(shí)間,當(dāng)所述粉絲和/或關(guān)注用戶的采集時(shí)間距離當(dāng)前時(shí)間間隔達(dá)到預(yù)設(shè)時(shí)間閾值,刪除該粉絲信息和/或關(guān)注用戶信息。
[0024]另一方面,本發(fā)明還提供一種社交網(wǎng)絡(luò)關(guān)系的采集系統(tǒng),包括:
[0025]模擬登錄模塊,用于根據(jù)預(yù)設(shè)微博用戶信息,通過(guò)模擬移動(dòng)終端瀏覽器登錄預(yù)設(shè)微博;
[0026]URL設(shè)置模塊,用于設(shè)置目標(biāo)微博用戶的粉絲URL和/或關(guān)注URL ;
[0027]界面獲取模塊,用于在登錄預(yù)設(shè)微博的所述模擬移動(dòng)終端瀏覽器中,根據(jù)設(shè)置的URL向微博服務(wù)器發(fā)請(qǐng)求,獲得所述微博服務(wù)器返回的HTML界面;
[0028]關(guān)系獲得模塊,用于根據(jù)獲得的HTML界面,獲取所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息。
[0029]進(jìn)一步,所述采集系統(tǒng)還包括網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù);所述網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù),用于存儲(chǔ)所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息;
[0030]關(guān)系獲得模塊,還用于將所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息,添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中;以及
[0031]根據(jù)反向取關(guān)系方法;
[0032]獲得所述目標(biāo)微博用戶的粉絲的關(guān)注用戶,并添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中;和/或
[0033]獲得所述目標(biāo)微博用戶的關(guān)注用戶的粉絲,并添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中。
[0034]進(jìn)一步,所述采集系統(tǒng)還包括種子數(shù)據(jù)庫(kù);所述種子數(shù)據(jù)庫(kù),用于存儲(chǔ)目標(biāo)微博用戶的信息;
[0035]URL設(shè)置模塊,還用于把所述目標(biāo)微博用戶的粉絲和/或關(guān)注用戶設(shè)置為目標(biāo)微博用戶,并存儲(chǔ)在種子數(shù)據(jù)庫(kù)中;
[0036]搜索預(yù)設(shè)關(guān)鍵詞,獲得與所述關(guān)鍵詞相關(guān)的微博用戶;
[0037]將與關(guān)鍵詞相關(guān)的微博用戶作為目標(biāo)微博用戶,并存儲(chǔ)在種子數(shù)據(jù)庫(kù)中。
[0038]所述采集系統(tǒng)還包括種子數(shù)據(jù)庫(kù),以及
[0039]讀取種子數(shù)據(jù)庫(kù)中的目標(biāo)微博用戶,設(shè)置目標(biāo)微博用戶的粉絲URL和/或關(guān)注URL0
[0040]進(jìn)一步,關(guān)系獲得模塊,還用于定時(shí)遍歷網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中目標(biāo)微博用戶的粉絲和/或關(guān)注用戶的采集時(shí)間,當(dāng)所述粉絲和/或關(guān)注用戶的采集時(shí)間距離當(dāng)前時(shí)間間隔達(dá)到預(yù)設(shè)時(shí)間閾值,刪除該粉絲信息和/或關(guān)注用戶信息。
[0041]本發(fā)明有益效果如下:本發(fā)明消除了微博服務(wù)器的訪問(wèn)頻率限制,可以無(wú)限制的向服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求;降低了實(shí)現(xiàn)難度,不需要逆向分析和大量的調(diào)試。
【附圖說(shuō)明】
[0042]圖1是本發(fā)明實(shí)施例中一種社交網(wǎng)絡(luò)關(guān)系的采集方法的流程圖。
【具體實(shí)施方式】
[0043]本發(fā)明提供了一種社交網(wǎng)絡(luò)關(guān)系的采集方法及系統(tǒng),以下結(jié)合附圖以及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0044]實(shí)施例一
[0045]本發(fā)明實(shí)施例提供一種社交網(wǎng)絡(luò)關(guān)系的采集方法,該方法基于模擬移動(dòng)終端瀏覽器、反向取關(guān)系和基于關(guān)鍵詞等方式獲取目標(biāo)微博用戶的粉絲信息和關(guān)注關(guān)注信息,從而實(shí)現(xiàn)對(duì)微博的網(wǎng)絡(luò)關(guān)系進(jìn)行采集。該方法包括:
[0046]S101,根據(jù)預(yù)設(shè)微博用戶信息,通過(guò)模擬移動(dòng)終端瀏覽器登錄預(yù)設(shè)微博;
[0047]具體地,微博用戶信息包括微博用戶名和密碼,該預(yù)設(shè)微博用戶可以預(yù)先在微博服務(wù)器上注冊(cè)獲得;以及獲取微博登陸地址和登陸表單值;然后通過(guò)HttpClient模擬移動(dòng)終端瀏覽器(即手機(jī)瀏覽器),設(shè)置請(qǐng)求頭,通過(guò)POST方法,提交微博賬戶和密碼,如果登錄成功,接收微博服務(wù)器返回的response,分析response的header的set-cookie,拼湊出用戶登錄后的cookie。
[0048]S102,設(shè)置目標(biāo)微博用戶的粉絲URL和/或關(guān)注用戶URL ;具體地,根據(jù)目標(biāo)微博的用戶信息設(shè)置目標(biāo)微博的URL及其用戶粉絲URL和/或關(guān)注用戶URL。其中,目標(biāo)微博用戶可以從種子數(shù)據(jù)庫(kù)中讀取,種子數(shù)據(jù)庫(kù)用于存儲(chǔ)目標(biāo)微博用戶的信息;也就是說(shuō)將種子數(shù)據(jù)庫(kù)中的存儲(chǔ)的微博用戶作為目標(biāo)微博。
[0049]S103,在登錄預(yù)設(shè)微博的所述模擬移動(dòng)終端瀏覽器中,根據(jù)設(shè)置的URL向微博服務(wù)器發(fā)請(qǐng)求,獲得所述微博服務(wù)器返回的HTML界面;
[0050]S104,根據(jù)獲得的HTML界面,獲取所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息;具體地,獲得返回的HTML界面,通過(guò)正則表達(dá)式獲取目標(biāo)微博的所有的粉絲或者關(guān)注信息。這些信息可以包括粉絲數(shù)量和關(guān)注數(shù)量,根據(jù)這些信息可以確定要爬取多少頁(yè)。
[0051]S105,將所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息,添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中;
[0052]本發(fā)明實(shí)施例的方法,由于模擬移動(dòng)終端瀏覽器發(fā)送請(qǐng)求數(shù)據(jù),故避免了繁瑣的JavaScript執(zhí)行、解析,ajax動(dòng)態(tài)加載等問(wèn)題。通過(guò)庫(kù)函數(shù)將請(qǐng)求的數(shù)據(jù)轉(zhuǎn)換為字符串格式返回給調(diào)用方法。
[0053]由于兩個(gè)用戶之間,只要存在粉絲或者關(guān)注關(guān)系就一定存在關(guān)注或者被關(guān)注關(guān)系,基于此,如果A關(guān)注了 B,那么B的粉絲列表里一定存在A,因此可以取一次數(shù)據(jù)得到用戶之間的兩條用戶關(guān)系,這種方法為反向取關(guān)系方法。
[0054]因此,本發(fā)明實(shí)施例的方法還包括:
[0055]根據(jù)反向取關(guān)系方法;獲得所述目標(biāo)微博用戶的粉絲的關(guān)注用戶,并添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中;和/或
[0056]獲得所述目標(biāo)微博用戶的關(guān)注用戶的粉絲,并添加到網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù)中。具體地,反向取關(guān)系方法為將所述目標(biāo)微博用戶設(shè)置為所述目標(biāo)微博用戶的粉絲的關(guān)注用戶;和/或
[0057]將所述目標(biāo)微博用戶設(shè)置為所述目標(biāo)微博用戶的關(guān)注用戶的粉絲。
[0058]把所述目標(biāo)微博用戶的粉絲和/或關(guān)注用戶設(shè)置為目標(biāo)微博用戶,并存儲(chǔ)在種子數(shù)據(jù)庫(kù);然后讀取種子數(shù)據(jù)庫(kù)中的每個(gè)目標(biāo)微博用戶,重復(fù)執(zhí)行S102-S105。
[0059]其中,網(wǎng)絡(luò)關(guān)系數(shù)據(jù)庫(kù),用于存儲(chǔ)所述目標(biāo)微博用戶的粉絲信息和/或所述目標(biāo)微博用戶的關(guān)注用戶信息。
[0060]微博用戶之間可能存在這種情況,即種子數(shù)據(jù)庫(kù)中的所有目標(biāo)微博用戶之間可能存在關(guān)注、粉絲或者互粉關(guān)系,但是所有目標(biāo)微博用戶之間都沒(méi)有對(duì)外的有關(guān)注或者粉絲,可能存在所謂的這種“信息孤島”。因此,本發(fā)明