如何科學(xué)地蹭熱點(diǎn):用python爬蟲獲取熱門微博評(píng)論并進(jìn)行情感分析
前言:本文主要涉及知識(shí)點(diǎn)包括新浪微博爬蟲、python對(duì)數(shù)據(jù)庫(kù)的簡(jiǎn)單讀寫、簡(jiǎn)單的列表數(shù)據(jù)去重、簡(jiǎn)單的自然語(yǔ)言處理(snowNLP模塊、機(jī)器學(xué)習(xí))。適合有一定編程基礎(chǔ),并對(duì)python有所了解的盆友閱讀。
甩鍋の聲明
- 1.本數(shù)據(jù)節(jié)選自新浪熱門微博評(píng)論,不代表本人任何觀點(diǎn)
- 2.本人不接受任何非技術(shù)交流類批評(píng)指責(zé)(夸我可以)
- 3.本次分析結(jié)果因技術(shù)問題存在一定誤差(是引入的包的問題,不是我的)
- 4.本次選取熱門微博為一個(gè)月以前的(翻譯一下:熱點(diǎn)已經(jīng)冷了,我只是個(gè)寫教程的)
- 頂鍋蓋逃
繼上次更完“國(guó)慶去哪兒”文之后,被好多編程相關(guān)的公眾號(hào)翻了牌子_(:зゝ∠)_,讓我過了一把v的癮,也讓我更加努力的想要裝(消音)。
在我埋頭學(xué)習(xí)mysql、scrapy、django準(zhǔn)備下一波吹水的時(shí)候,有人說,你去爬下老薛的微博呀,還能蹭個(gè)熱點(diǎn),這讓勤(mo)奮(mo)學(xué)(kou)習(xí)(jiao)的我停下了寄幾敲代碼的手。
然后我趕緊去關(guān)注了一下最近老薛的新聞…在感受了劇情的復(fù)雜和案情的撲朔迷離之后…我默默地學(xué)習(xí)了如何閱讀合同…如何利用ELA分析圖片…如何寫作文…如何查別人的銀行流水…知識(shí)點(diǎn)有點(diǎn)多…讓我緩一會(huì)…
所以呢,這次的主題是分析老薛最新微博的評(píng)論,分析評(píng)論粉絲們的心情狀態(tài),且聽我娓娓道來。
1.新浪微博API
在經(jīng)歷了幾次爬蟲被禁的悲痛(真的很痛)之后,我學(xué)會(huì)了在爬網(wǎng)站之前先查有沒有API的“優(yōu)良”習(xí)慣。新浪作為一個(gè)大廠,怎么會(huì)不推出新浪微博API呢,面向開發(fā)者新浪有自己的開放平臺(tái),這里是python調(diào)用微博API的方法,下面是通過登錄App_key和App_secret方式訪問微博API的代碼,代碼是基于py2的。py3對(duì)weibo模塊使用存在一定問題。
- from weibo import APIClient
- import webbrowser
- import sys
- reload(sys)
- sys.setdefaultencoding('utf-8')
- APP_KEY = '你的App Key ' #獲取的App Key
- APP_SECRET = '你的AppSecret' #獲取的AppSecret
- CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' #回調(diào)鏈接
- client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
- url = client.get_authorize_url()
- webbrowser.open_new(url) #打開默認(rèn)瀏覽器獲取code參數(shù)
- print '輸入url中code后面的內(nèi)容后按回車鍵:'
- code = raw_input()
- r = client.request_access_token(code)
- access_token = r.access_token
- expires_in = r.expires_in
- client.set_access_token(access_token, expires_in)
知道如何登錄API了,辣么如何調(diào)用API爬單條微博的評(píng)論呢?一行代碼搞定。
- r = client.comments.show.get(id = 4154417035431509,count = 200,page = 1)
所有關(guān)于單條微博的評(píng)論信息都在r.comments中了,這里需要對(duì)照微博API文檔,微博API有聲明調(diào)用微博評(píng)論API需要獲取用戶授權(quán),但是捏,只要知道單條微博的id,就可以調(diào)用這個(gè)API了,關(guān)于單條微博的id如何獲取在后面會(huì)說(小聲一點(diǎn),千萬別讓微博知道,萬一封了呢)。
按照client.接口名.get(請(qǐng)求參數(shù))的方式獲取API,獲取API后的規(guī)格可在接口詳情中查看,文檔中有給出返回結(jié)果的示例。
文檔中也給出了關(guān)鍵數(shù)據(jù)的json接口名稱。
如果我們要獲取微博評(píng)論的內(nèi)容,只需要調(diào)用text接口即可。
- for st in r.comments:
- text = st.text
2.微博爬蟲
通過調(diào)用新浪微博API的方式,我們就可以簡(jiǎn)單獲取單條微博的評(píng)論信息了,為啥說簡(jiǎn)單呢,因?yàn)槿思t信息貴啊!你以為大V的微博就這么免費(fèi)的給你API調(diào)用了嗎,非認(rèn)證應(yīng)用開發(fā)者單日只能請(qǐng)求幾千次API,這對(duì)像老薛這樣單條微博幾十萬評(píng)論的大V來說…太少了(TT)
所以捏,還是要寫微博爬蟲。
正所謂,知己知彼百戰(zhàn)不殆,新浪作為大廠,怎么說也是身經(jīng)百戰(zhàn),必定是經(jīng)歷了無數(shù)場(chǎng)爬蟲與反爬之間的戰(zhàn)爭(zhēng),必然有著健全的反爬策略。正所謂,強(qiáng)敵面前,繞道而行,有位大佬說得好,爬網(wǎng)站,先爬移動(dòng)端:https://m.weibo.cn/
登錄微博后,進(jìn)入到老薛回應(yīng)P圖事件的微博中去,_(:зゝ∠)_老薛啊,怪我,怪我來得太晚了,點(diǎn)進(jìn)去的時(shí)候已經(jīng)有70w+的評(píng)論了(截止至發(fā)文當(dāng)天已經(jīng)100w+的評(píng)論了),可以看到安靜的微博下粉絲們不安的心…
移動(dòng)端微博的網(wǎng)址顯得肥腸簡(jiǎn)單,不似PC端那么復(fù)雜而不明邏輯:https://m.weibo.cn/status/4154417035431509 多點(diǎn)幾條微博就可以知道status后面的數(shù)字,就是單條微博的id了。
評(píng)論里包含了熱門評(píng)論和最新評(píng)論倆種,但無論是哪種評(píng)論,繼續(xù)往下翻網(wǎng)址都不會(huì)變化。江湖慣例(不懂江湖慣例的去看我之前的文),chrome瀏覽器右鍵“檢查”,觀察network變化。
從network的xhr文件中,可以得知熱門評(píng)論的變化規(guī)律是:
- 'https://m.weibo.cn/single/rcList?format=cards&id=' + 單條微博id + '&type=comment&hot=1&page=' + 頁(yè)碼
最新評(píng)論的變化規(guī)律是:
- 'https://m.weibo.cn/api/comments/show?id=' + 單條微博id + '&page=' + 頁(yè)碼
打開https://m.weibo.cn/single/rcList?format=cards&id=4154417035431509&type=comment&hot=1&page=1 就可以看到熱門評(píng)論的json文件。
接下來就是套路了,偽裝瀏覽器header,讀取json文件,遍歷每一頁(yè)…這都不是重點(diǎn)!而且這些我以前都講過~直接上代碼~這里開始是py3的代碼了~
- import re,time,requests,urllib.request
- weibo_id = input('輸入單條微博ID:')
- # url='https://m.weibo.cn/single/rcList?format=cards&id=' + weibo_id + '&type=comment&hot=1&page={}' #爬熱門評(píng)論
- url='https://m.weibo.cn/api/comments/show?id=' + weibo_id + '&page={}' #爬時(shí)間排序評(píng)論
- headers = {
- 'User-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0',
- 'Host' : 'm.weibo.cn',
- 'Accept' : 'application/json, text/plain, */*',
- 'Accept-Language' : 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
- 'Accept-Encoding' : 'gzip, deflate, br',
- 'Referer' : 'https://m.weibo.cn/status/' + weibo_id,
- 'Cookie' : '登錄cookie信息',
- 'DNT' : '1',
- 'Connection' : 'keep-alive',
- }
- i = 0
- comment_num = 1
- while True:
- # if i==1: #爬熱門評(píng)論
- # r = requests.get(url = url.format(i),headers = headers)
- # comment_page = r.json()[1]['card_group']
- # else:
- # r = requests.get(url = url.format(i),headers = headers)
- # comment_page = r.json()[0]['card_group']
- r = requests.get(url = url.format(i),headers = headers) #爬時(shí)間排序評(píng)論
- comment_page = r.json()['data']
- if r.status_code ==200:
- try:
- print('正在讀取第 %s 頁(yè)評(píng)論:' % i)
- for j in range(0,len(comment_page)):
- print('第 %s 條評(píng)論' % comment_num)
- user = comment_page[j]
- comment_id = user['user']['id']
- print(comment_id)
- user_name = user['user']['screen_name']
- print(user_name)
- created_at = user['created_at']
- print(created_at)
- text = re.sub('<.*?>|回復(fù)<.*?>:|[\U00010000-\U0010ffff]|[\uD800-\uDBFF][\uDC00-\uDFFF]','',user['text'])
- print(text)
- likenum = user['like_counts']
- print(likenum)
- source = re.sub('[\U00010000-\U0010ffff]|[\uD800-\uDBFF][\uDC00-\uDFFF]','',user['source'])
- print(source + '\r\n')
- comment_num+=1
- i+=1
- time.sleep(3)
- except:
- i+1
- pass
- else:
- break
這里有幾點(diǎn)說明:
- 設(shè)置爬取間隔時(shí)間之后,微博爬蟲被禁的概率降低了很多(特別是晚上)
- 新浪每次返回的json數(shù)據(jù)條數(shù)隨機(jī),所以翻頁(yè)之后會(huì)出現(xiàn)數(shù)據(jù)重復(fù)的情況,所以用到了數(shù)據(jù)去重,這會(huì)在后面說。
- 在text和source中添加了去除emoji表情的代碼(折騰了很久寫不進(jìn)數(shù)據(jù)庫(kù),差點(diǎn)就從刪庫(kù)到跑路了/(ㄒoㄒ)/),同時(shí)也去除了摻雜其中的回復(fù)他人的html代碼。
- 我只寫了讀取數(shù)據(jù),沒有寫如何保存,因?yàn)槲覀円玫綌?shù)!據(jù)!庫(kù)!辣!(這是重點(diǎn)!敲黑板)
3.python中數(shù)據(jù)庫(kù)的讀取與寫入
雖然微博爬蟲大大提高了數(shù)據(jù)獲取量,但也因?yàn)槭桥老x而容易被新浪封禁。這里結(jié)束循環(huán)的判斷是網(wǎng)絡(luò)狀態(tài)不是200,但當(dāng)微博發(fā)現(xiàn)是爬蟲時(shí),微博會(huì)返回一個(gè)網(wǎng)頁(yè),網(wǎng)頁(yè)中什么實(shí)質(zhì)內(nèi)容都木有,這時(shí)候程序就會(huì)報(bào)錯(cuò),而之前爬到的數(shù)據(jù),就啥也沒有了。
但是如果爬一會(huì),保存一次數(shù)據(jù),這數(shù)據(jù)量要一大起來…冷冷的文件在臉上胡亂地拍…我的心就像被…這時(shí)候我們就需要用到數(shù)據(jù)庫(kù)了。
數(shù)據(jù)庫(kù),顧名思義,就是存放數(shù)據(jù)的倉(cāng)庫(kù),數(shù)據(jù)庫(kù)作為一個(gè)發(fā)展了60多年的管理系統(tǒng),有著龐大的應(yīng)用領(lǐng)域和復(fù)雜的功能……好了我編不下去了。
在本文中,數(shù)據(jù)庫(kù)的主要作用是AI式的excel表格(●—●)。在爬蟲進(jìn)行的過程中,爬到一個(gè)數(shù)就存進(jìn)去,爬到一個(gè)數(shù)就存進(jìn)去,即使爬蟲程序運(yùn)行中斷,中斷前爬到的數(shù)據(jù)都會(huì)存放在數(shù)據(jù)庫(kù)中。
大多數(shù)數(shù)據(jù)庫(kù)都能與python對(duì)接使用的,米醬知道的有mysql、sqlite、mongodb、redis。這里用的是mysql,mac上mysql的安裝,管理數(shù)據(jù)庫(kù)的軟件Navicat使用幫助,其他系統(tǒng)自己找吧,安裝使用過程中有啥問題,請(qǐng)不要來找我(逃
根據(jù)上面的代碼,在navicat中創(chuàng)建數(shù)據(jù)庫(kù)、表和域以及域的格式。在Python程序中添加代碼。
- conn =pymysql.connect(host='服務(wù)器IP(默認(rèn)是127.0.0.1)',user='服務(wù)器名(默認(rèn)是root)',password='服務(wù)器密碼',charset="utf8",use_unicode = False) #連接服務(wù)器
- cur = conn.cursor()
- sql = "insert into xue.xueresponse(comment_id,user_name,created_at,text,likenum,source) values(%s,%s,%s,%s,%s,%s)" #格式是:數(shù)據(jù)名.表名(域名)
- param = (comment_id,user_name,created_at,text,likenum,source)
- try:
- A = cur.execute(sql,param)
- conn.commit()
- except Exception as e:
- print(e)
- conn.rollback()
運(yùn)行python程序,大概爬了2w條實(shí)時(shí)評(píng)論,新浪微博的反爬還是很強(qiáng)大的,有倆個(gè)解決方法:更換IP和切換賬號(hào),IP代理的使用方法我以前有寫過,賬號(hào)可以在X寶購(gòu)買,但是!_(:зゝ∠)_由于本文的作者是一個(gè)肥腸貧窮肥腸摳門并且身患重病(懶癌)的人……2w條數(shù)據(jù)也是有研究?jī)r(jià)值的對(duì)不對(duì)(((;꒪ꈊ꒪;))),不如我們就這樣繼續(xù)我們研究吧(((;꒪ꈊ꒪;)))……
在進(jìn)行下一步研究之前,我們還要將數(shù)據(jù)庫(kù)中的內(nèi)容讀取出來,python中數(shù)據(jù)庫(kù)的讀取代碼也很簡(jiǎn)單。
- conn =pymysql.connect(host='服務(wù)器IP',user='用戶名',password='密碼',charset="utf8") #連接服務(wù)器
- with conn:
- cur = conn.cursor()
- cur.execute("SELECT * FROM xue.xueresponse WHERE id < '%d'" % 20000)
- rows = cur.fetchall()
這樣之前爬取的信息就被讀取出來了,但是前面也說了,微博爬蟲翻頁(yè)時(shí)返回?cái)?shù)據(jù)條數(shù)隨機(jī),所以會(huì)出現(xiàn)重復(fù)的狀況,所以讀取之后,需要用if…not in語(yǔ)句進(jìn)行一個(gè)數(shù)據(jù)去重。
- for row in rows:
- row = list(row)
- del row[0]
- if row not in commentlist:
- commentlist.append([row[0],row[1],row[2],row[3],row[4],row[5]])
完整代碼在文末。
4.自然語(yǔ)言處理NLP
NLP是人工智能的一個(gè)領(lǐng)域,可以通過算法的設(shè)計(jì)讓機(jī)器理解人類語(yǔ)言,自然語(yǔ)言也屬于人工智能中較為困難的一環(huán),像中文這么博大精深、變幻莫測(cè)的語(yǔ)言更是NLP中的一大難點(diǎn),python中有很多NLP相關(guān)的模塊,有興趣的盆友可以通過用python實(shí)現(xiàn)簡(jiǎn)單的文本情感分析初探NLP。
我參(ban)考(yun)了一些現(xiàn)成的情感分析算法,對(duì)爬取的評(píng)論進(jìn)行分析,錯(cuò)誤率肥腸高_(dá)(:зゝ∠)_,這可腫么辦?難道要重新設(shè)計(jì)算法?米醬仿佛遇到了人生中第一個(gè)因?yàn)檎Z(yǔ)文沒學(xué)好而引發(fā)的重大問題……
當(dāng)然像米醬這樣靈(lan)活(duo)的姑娘,自然是很快發(fā)現(xiàn)了python中較為出名的一個(gè)中文NLP庫(kù):snowNLP。snowNLP調(diào)用的方法比較簡(jiǎn)單,源碼中詳細(xì)解釋了調(diào)用方法,和生成結(jié)果。
- def snowanalysis(textlist):
- sentimentslist = []
- for li in textlist:
- s = SnowNLP(li)
- print(li)
- print(s.sentiments)
- sentimentslist.append(s.sentiments)
這段代碼中獲取了讀取數(shù)據(jù)庫(kù)后由評(píng)論主體text生成的列表文件,并依次對(duì)每一個(gè)評(píng)論進(jìn)行情感值分析。snowNLP能夠根據(jù)給出的句子生成一個(gè)0-1之間的值,當(dāng)值大于0.5時(shí)代表句子的情感極性偏向積極,當(dāng)分值小于0.5時(shí),情感極性偏向消極,當(dāng)然越偏向倆頭,情緒越明顯咯,讓我們來看看測(cè)試評(píng)論的結(jié)果。
第一條:惡心 呸 給出了0.01的分值,最后一條:力挺薛之謙 給出了0.99的分值??雌渌麕拙浠痉险Z(yǔ)境的態(tài)度,當(dāng)需要評(píng)測(cè)單個(gè)商品的評(píng)價(jià)態(tài)度時(shí)就可以使用snowNLP。但是由于老薛的評(píng)論中涉及到三個(gè)人,他自己,李雨桐,高磊鑫,算法無法判斷評(píng)論是關(guān)于誰的情感值,又因?yàn)槲⒉┰u(píng)論可以粉絲之間互相回復(fù),這讓判斷評(píng)論的主體是誰更加撲朔迷離(機(jī)器表示我學(xué)習(xí)不能啊…)。
這好像代表了,本次分析的結(jié)果將…并沒有什么卵用。發(fā)生這種事情,米醬也不想的…做人呢…最重要的是要開心…米醬不會(huì)寫算法啊,米醬語(yǔ)文也不好啊,米醬真的做不到啊(๑°⌓°๑)…
5.分析結(jié)果
本次分析的目的愉快的從分析粉絲們對(duì)待薛之謙事件的情緒變成了單純分析粉絲們的情緒(●—●)。
- plt.hist(sentimentslist,bins=np.arange(0,1,0.02))
- plt.show()
對(duì)上節(jié)經(jīng)過處理得到的情感值列表進(jìn)行統(tǒng)計(jì),并生成分布圖。下圖數(shù)據(jù)采集時(shí)間9月27日19時(shí),采集評(píng)論2w條。
我還順便(真的是順便,正經(jīng)臉)爬了李雨桐將網(wǎng)友轉(zhuǎn)賬捐款的微博的2w條評(píng)論。
我又順順便(真的順便,看我真誠(chéng)的眼神)爬了陳赫出軌時(shí)發(fā)表我錯(cuò)了博文的微博評(píng)論。
根據(jù)這三張圖,可以看到情感值在接近0、1兩端以及0.5左右位置頻率較高,說明粉絲們對(duì)于此類事件的情緒無論是積極還是消極都是比較明顯的。但也可以從圖片中看到一些微妙的差別,老薛的微博中情感值接近1的數(shù)量高于接近0的數(shù)量,但都沒有超過700,李雨桐微博中情感值接近1的數(shù)量遠(yuǎn)低于接近0的數(shù)量,甚至接近0的數(shù)目到達(dá)了1000以上,但二者都超過了700,而陳赫的微博分析結(jié)果,倆者則都接近800。由于算法存在一定誤差,不代表真實(shí)評(píng)論結(jié)果,我就不再多分析了(你們懂的)。
6.彩蛋
由于本次分析結(jié)果十分的……蒼白(我真的…盡力了…_(:зゝ∠)_
我又對(duì)評(píng)論中出現(xiàn)的微博表情進(jìn)行了統(tǒng)計(jì)。
- #薛微博評(píng)論表情統(tǒng)計(jì)
- Counter({'[加油]': 128, '[哆啦A夢(mèng)開心]': 28, '[哆啦A夢(mèng)親親]': 17, '[哆啦A夢(mèng)美味]': 12, '[em]': 4, '[/em]': 4, '[愛你]': 4, '[攤手]': 3, '[怒罵]': 3, '[好棒]': 3, '[轉(zhuǎn)發(fā)]': 2, '[可愛]': 1, '[太開心]': 1, '[/cp]': 1, '[呵呵]': 1, '[xkl轉(zhuǎn)圈]': 1, '[溫暖帽子]': 1, '[ok]': 1})
- #李微博評(píng)論表情統(tǒng)計(jì)
- Counter({'[攤手]': 13, '[加油]': 10, '[ok]': 8, '[皺眉]': 6, '[怒罵]': 4, '[太開心]': 3, '[左哼哼]': 3, '[饞嘴]': 2, '[擠眼]': 2, '[呵呵]': 2, '[嘿哈]': 2, '[機(jī)智]': 2, '[/cp]': 1, '[抱抱_舊]': 1, '[笑而不語(yǔ)]': 1, '[費(fèi)解]': 1, '[cp]': 1})
- #陳微博評(píng)論表情統(tǒng)計(jì)
- Counter({'[呵呵]': 238, '[挖鼻屎]': 77, '[微風(fēng)]': 45, '[好棒]': 26, '[打哈氣]': 21, '[ok]': 12, '[左哼哼]': 12, '[羊年大吉]': 12, '[懶得理你]': 11, '[崩潰]': 10, '[花心]': 9, '[困死了]': 8, '[淚]': 8, '[玫瑰]': 8, '[睡覺]': 6, '[雷鋒]': 5, '[炸雞和啤酒]': 5, '[帶著微博去旅行]': 4, '[有鴨梨]': 3, '[發(fā)紅包啦]': 3, '[馬到成功]': 3, '[丘比特]': 3, '[最右]': 3, '[花]': 3, '[打臉]': 3, '[別煩我]': 2, '[推薦]': 2, '[摳鼻屎]': 2, '[傷心]': 2, '[xkl轉(zhuǎn)圈]': 2, '[霹靂]': 2, '[em]': 2, '[/em]': 2, '[悲催]': 2, '[不要]': 2, '[ali轉(zhuǎn)圈哭]': 2, '[xkl糖豆]': 1, '[江南style]': 1, '[芒果萌萌噠]': 1, '[給勁]': 1, '[歪果仁夏克立]': 1, '[搶到啦]': 1, '[萌娃大竣]': 1, '[電影]': 1, '[憤怒]': 1, '[夏天公主]': 1, '[飛個(gè)吻]': 1, '[父親節(jié)]': 1, '[強(qiáng)]': 1, '[得瑟]': 1, '[被電]': 1, '[拜 拜]': 1, '[蠟燭]': 1, '[奧特曼]': 1, '[lt嚇]': 1, '[甩甩手]': 1, '[轉(zhuǎn)發(fā)]': 1, '[xkl頂]': 1, '[贊]': 1, '[愉快]': 1, '[糾結(jié)]': 1, '[/cp]': 1, '[bm贊]': 1, '[巨汗]': 1, '[最差]': 1, '[害怕]': 1, '[豬頭]': 1, '[bm哭泣]': 1, '[lt淚目]': 1, '[瞧瞧]': 1, '[打哈欠]': 1, '[xkl親親]': 1, '[bm會(huì)心笑]': 1, '[bm調(diào)皮]': 1})
李相比于倆位當(dāng)時(shí)正當(dāng)紅的明星,粉絲們使用表情的數(shù)目也是天壤之別啊。網(wǎng)友們對(duì)陳赫評(píng)論最多的表情是[呵呵],沒有一個(gè)[加油](也有可能當(dāng)時(shí)沒有[加油]這個(gè)表情?),對(duì)老薛用了128次[加油],李雨桐10次,而評(píng)論李雨桐微博最多的表情也只有13個(gè)。果然是人紅熱點(diǎn)多,連表情包也多啊!
我還對(duì)參與評(píng)論的粉絲進(jìn)行了統(tǒng)計(jì),并提取了2w條微博評(píng)論里參與評(píng)論最多的前20位粉絲。
- #薛微博評(píng)論粉絲統(tǒng)計(jì)
- [('方鹿亓', 150), ('用戶5238901365', 60), ('野百合xy', 57), ('憶盲i', 46), ('哎喲瑪', 44), ('學(xué)霸吖', 43), ('炒股屌絲', 42), ('賭神美好如初52', 38), ('梅蘭竹菊-世外桃源', 37), ('罌粟七年前', 36), ('陽(yáng)光音樂i', 33), ('用戶5909206841', 33), ('林xiu霞', 32), ('醫(yī)鬧薛之謙', 32), ('wyx518052', 31), ('午后陽(yáng)光喵喵', 29), ('藍(lán)天太陽(yáng)我喜他', 29), ('不死就作的sr', 29), ('李遇可愛啵', 29), ('家駒一生所愛', 28)]
- #李微博評(píng)論粉絲統(tǒng)計(jì)
- [('方鹿亓', 139), ('0o夜雨狂瀾o0', 120), ('藍(lán)魅丶影', 98), ('mingyuanmumei', 76), ('曉清Z', 75), ('謙謙家的暴發(fā)戶', 65), ('一個(gè)玥寶貝兒', 64), ('qinglongzhilian', 62), ('出門左轉(zhuǎn)滾', 60), ('用戶5909206841', 58), ('水里的魚188啊', 56), ('story他說', 53), ('C平民', 52), ('斷斷續(xù)續(xù)的思考', 50), ('鏗客HXRK', 48), ('我的網(wǎng)名只有8個(gè)字', 48), ('愛吃魚的貓妮', 47), ('唯ai薛之謙', 46), ('用戶6213147659', 45), ('洛杉磯的咖喱雞', 44)]
emmmmmm,這個(gè)我就不分析了,大家寄幾理解吧。那個(gè)叫方鹿亓的,你出來,你說說,你咋那么閑呢?(逃
_(┐「ε:)_終于編…哦不…寫完了,大家慢慢消化,源碼已上傳至gayhub。