爬取微博用戶數(shù)據(jù)

前言

微博數(shù)據(jù)基本上可以說是社交圈里面最大的了俄认。但是單純的使用urllib往毡,是不足以獲取數(shù)據(jù)的蒙揣。

今天來使用Cookie的方式繞開微博權(quán)限驗證這一關(guān)卡, 爬取一下數(shù)據(jù)开瞭。

查找的過程

打開ChromeF12之后懒震,刷新頁面,真的是眼花繚亂的數(shù)據(jù)流啊嗤详,飛流直下个扰。找了好久,發(fā)現(xiàn)大部分?jǐn)?shù)據(jù)都是通過JavaScript腳本渲染到頁面上的葱色。

這也就是為什么單純的使用urllib抓不到的原因了递宅。因為這是動態(tài)頁面,而Urllib則是抓取靜態(tài)頁面苍狰。明白了這一點办龄,就找到了方向了。

那就是找到數(shù)據(jù)源接口舞痰。后來經(jīng)過我的仔細(xì)審核土榴,發(fā)現(xiàn)了類似于這樣的一個URL。

http://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=103505&is_search=0&visible=0&is_hot=1&is_tag=0&profile_ftype=1&page=2&pagebar=0&pl_name=Pl_Official_MyProfileFeed__23&id=1035051198367585&script_uri=/kqdpku&feed_type=0&pre_page=2&domain_op=103505&__rnd=1495367966928
接口數(shù)據(jù)源

然后發(fā)現(xiàn)服務(wù)器端返回的數(shù)據(jù)內(nèi)容是JSON格式的响牛。大致內(nèi)容如下玷禽;

關(guān)聯(lián)頁碼的服務(wù)器端返回的數(shù)據(jù)

然后這姑且算是找到一個人的數(shù)據(jù)了吧赫段。那么問題接著來了,如果我想看其他人的頁面怎么辦呢矢赁?

思路有如下兩個:

  • 一是按照剛才的方法糯笙,一個個的去查找。(費時費力撩银,不贊同)
  • 二是走捷徑给涕,對比URL,我們會發(fā)現(xiàn)一個domain的參數(shù)额获,而對應(yīng)的值就是目標(biāo)博主的ID够庙。
    比如我要看劉強東的主頁,http://weibo.com/p/1003061866402485/home?from=page_100306&mod=TAB&is_hot=1#place
    里面的from參數(shù)的page值后面的數(shù)據(jù)就是我們需要的domain值了抄邀。拿過來就可以直接使用耘眨。

核心

經(jīng)過了剛才的各種鋪墊,下面直接上代碼境肾。體驗一把吧剔难。

# coding: utf8

# @Author: 郭 璞
# @File: login.py                                                                 
# @Time: 2017/5/21                                   
# @Contact: 1064319632@qq.com
# @blog: http://blog.csdn.net/marksinoberg
# @Description: 新浪微博登錄測試

import requests
import json
from bs4 import BeautifulSoup
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36',
    'Host': 'weibo.com'
}

Cookies = {
    "Cookie": "SCF=Asl3BNSxfmhmaP2cIVfnvOp-mmfHwOPYfdoMZIz6y4WtkH4xK0jdB0Hr0Tll4RzJ0xUHIi5HOLBAjEASrqSGDiQ.; SUB=_2A250JQA2DeThGeNI41UX8ifJyziIHXVXU3b-rDV8PUNbmtBeLWbGkW9yh-AUBKZFFYCHZ2zA0zH1I-l4dg..; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5yNOfs44nTEDRpARDUs7Yl5JpX5K2hUgL.Fo-c1hMceo.fehB2dJLoIcBLxK-LBo5L12qLxK-LBo5L12qLxK-LBo5L12qLxK-LBo5L12qLxK-LBo5L12qpi--fi-z7iKysi--fi-z7iKysi--Ni-z0i-8si--Ni-zpi-z0i--fiKLFi-2Ei--fi-82iK.7; SUHB=0HTxO_F0SbtSsP; ALF=1526899685; SSOLoginState=1495363686; YF-V5-G0=8d4d030c65d0ecae1543b50b93b47f0c; _s_tentry=my.sina.com.cn; Apache=9206065364153.127.1495363942807; SINAGLOBAL=9206065364153.127.1495363942807; ULV=1495363942825:1:1:1:9206065364153.127.1495363942807:; YF-Page-G0=fc0a6021b784ae1aaff2d0aa4c9d1f17; YF-Ugrow-G0=ea90f703b7694b74b62d38420b5273df; wvr=6; wb_publish_fist100_5687629504=1; UOR=blog.csdn.net,widget.weibo.com,www.sina.com.cn"
}


# 劉強東
url = 'http://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=103505&is_search=0&visible=0&is_hot=1&is_tag=0&profile_ftype=1&page=2&pagebar=0&pl_name=Pl_Official_MyProfileFeed__23&id=1035051198367585&script_uri=/kqdpku&feed_type=0&pre_page=1&domain_op=100306&__rnd=1495367966928'
response = requests.get(url=url, headers=headers, cookies=Cookies)

data = json.loads(response.text)

result = data['data']

soup = BeautifulSoup(result, 'html.parser')

blogs = soup.find_all('div', {'class': 'WB_detail'})
for blog in blogs[0:8]:
    print("微博發(fā)文:", blog.find_all('div')[2].get_text())
    # 為了減少控制臺內(nèi)容輸出,這里注釋掉即可
    # print("配圖:", blog.find_all('div', {'class': 'media_box'}))
    print('======='*36)

# WB_innerwrap

運行結(jié)果如何呢奥喻?

C:\Users\biao\Desktop\network\env\Scripts\python.exe C:/Users/biao/Desktop/network/code/sina/login.py
微博發(fā)文: 
                                                                                                    騙人偶宫,南通沒有普洱!//@普洱玫瑰湯:啊哈环鲤,我也是南通人呢纯趋。                                            
===========================================================
微博發(fā)文: 
                                                                                                    回復(fù)@流氓無產(chǎn)者劉爺:即使那樣死了,無恥的看客們還要說不過癮哩楔绞。//@流氓無產(chǎn)者劉爺:不僅不應(yīng)該收費结闸,還應(yīng)該累死餓死是不唇兑?還應(yīng)該綁著炸彈跟恐怖分子對炸去是不酒朵?還應(yīng)該拎著菜刀跟漢奸對砍去是不?說話之前掂量掂量自己扎附,考慮考慮別人不行么蔫耽?                                            
===========================================================
微博發(fā)文: 
                                                                                                    給隊里多買點。                                            
===========================================================
微博發(fā)文: 
                                                                                                    聰明留夜。//@遇見那兵荒馬亂:還是那天紅場閱兵那天您閱的未名湖嗎匙铡?                                            
===========================================================
微博發(fā)文: 
                                                                                                    你這眼神啊碍粥!//@鐵匠--孫:上面怎么還有肉渣渣鳖眼,還是饞嘴                                            
===========================================================
微博發(fā)文: 
                                                                                                    這哥倆才超過五百。                                            
===========================================================
微博發(fā)文: 
                                                                                                    順也是一種孝嚼摩,但不可機械教條钦讳。//@夜半有人私語時:以前只知道“以順行孝”矿瘦,原來也可以“以諫行孝”。謝謝孔老師愿卒。                                            
===========================================================
微博發(fā)文: 
                                                                                                    美夢與歹命缚去。我回答了 @NEW七七 的問題,問題價值¥433.00琼开,大家快來花1元圍觀~ O微博問答 ????                                            
===========================================================
Process finished with exit code 0

如此易结,微博數(shù)據(jù)也能搞到手了。

總結(jié)

使用Cookie繞開登錄選項柜候,確實是一個比較好的捷徑搞动。但是由于時效的問題,治標(biāo)不治本渣刷。

從上面的結(jié)果也可以看出滋尉,這里簡單的打印出了前幾條數(shù)據(jù)內(nèi)容。也算是拋磚引玉了飞主。而且對比網(wǎng)頁源碼之后狮惜,我發(fā)現(xiàn)了更多好玩的數(shù)據(jù)源。圖片碌识,短視頻碾篡,都會是很好的素材。

然后對XX進(jìn)行文本分析筏餐,做成詞云啊开泽,或者做一下社交網(wǎng)絡(luò)分析啊等等。

今天其實真的是太閑了魁瞪,所以才搞了一下微博數(shù)據(jù)的爬取穆律。文章內(nèi)容,排版都挺失敗的导俘。(⊙﹏⊙)b

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末峦耘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旅薄,更是在濱河造成了極大的恐慌辅髓,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件少梁,死亡現(xiàn)場離奇詭異洛口,居然都是意外死亡,警方通過查閱死者的電腦和手機凯沪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門第焰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妨马,你說我怎么就攤上這事挺举《穑” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵豹悬,是天一觀的道長葵陵。 經(jīng)常有香客問我,道長瞻佛,這世上最難降的妖魔是什么脱篙? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮伤柄,結(jié)果婚禮上绊困,老公的妹妹穿的比我還像新娘。我一直安慰自己适刀,他們只是感情好秤朗,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笔喉,像睡著了一般取视。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上常挚,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天作谭,我揣著相機與錄音,去河邊找鬼奄毡。 笑死折欠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吼过。 我是一名探鬼主播锐秦,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盗忱!你這毒婦竟也來了酱床?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤售淡,失蹤者是張志新(化名)和其女友劉穎斤葱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揖闸,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年料身,在試婚紗的時候發(fā)現(xiàn)自己被綠了汤纸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡芹血,死狀恐怖贮泞,靈堂內(nèi)的尸體忽然破棺而出楞慈,到底是詐尸還是另有隱情,我是刑警寧澤啃擦,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布囊蓝,位于F島的核電站,受9級特大地震影響令蛉,放射性物質(zhì)發(fā)生泄漏聚霜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一珠叔、第九天 我趴在偏房一處隱蔽的房頂上張望蝎宇。 院中可真熱鬧,春花似錦祷安、人聲如沸姥芥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凉唐。三九已至,卻和暖如春霍骄,著一層夾襖步出監(jiān)牢的瞬間熊榛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工腕巡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玄坦,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓绘沉,卻偏偏與公主長得像煎楣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子车伞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容