作為一個屌絲數(shù)據分析獅,倘若你突然來找我锣枝,可能我不是在跑數(shù)據,就是在整理數(shù)據ing(典型的數(shù)據搬運工...??)兰英;當然撇叁,偶爾在MapReduce任務剛剛開始的時候,我也會打個盹:
不要問我打盹的時候在干嘛畦贸,???♂?陨闹,刷脈脈!1』怠G骼鳌!
不要問我脈脈是啥=鹤埂君账!自己百度去....(一個匿名浮躁且充滿暴擊的社區(qū))。
有圖為證:
話說本屌已經被暴擊的體無完膚沈善;突然轉而一想乡数,這些經常逛脈脈的人一般都在關注些什么?
進入正題闻牡,我開始嘗試爬取脈脈“職言”板塊的帖子净赴。
究竟怎么弄,那就給你簡單粗暴的介紹一下(說詳細了你也不會看??)罩润。
“職言”板塊就一個外鏈(其實被隱藏)玖翅,沒有翻頁(其實有)靠下拉;比如下面這個圖哨啃,你下拉烧栋,鏈接永遠是這一個“https://maimai.cn/gossip_list”
那么如何找到真正請求的url,請遵守以下順序:點擊鼠標右鍵-檢查-Network-XHR-刷新當前頁面-從XHR中出現(xiàn)的一系列url開始尋找-找到很多值的那個url拳球;
比如以下圖片审姓,該url對應的響應數(shù)據剛好就是頁面上展示的結果,就是它祝峻!
那么找到了url之后我們在瀏覽器中單獨看下這個url的效果:
擦魔吐,這個正是我們想要的扎筒,url返回了詳細json格式數(shù)據;這里面主要的釋義如下:
text:帖子文本
author:作者time:發(fā)布時間
amts:評論數(shù)
circles_views:瀏覽數(shù)
likes:喜歡數(shù)
spreads:轉發(fā)數(shù)related_companies:話題涉及的公司名稱
好了酬姆,下面是代碼環(huán)節(jié)嗜桌,本系列采用R語言實現(xiàn)整個操作;
R的爬蟲生態(tài)明顯弱于Python辞色,不過R的實現(xiàn)過程也是非常有趣(主要是代碼簡單...):
library(rvest) # rvest r爬蟲library(magrittr) # 管道函數(shù)library(dplyr) # 數(shù)據處理# 尋找到url(其中的uid骨宠、token等替換成自己的)url<-"https://maimai.cn/sdk/web/gossip_list?u=1231313&channel=www&version=4.0.0&_csrf=HrQLzvpn-LIOLmadaE&access_token=dadadada1313131&uid=dadadada&token=dadada&page=10&jsononly=1"# 請求并翻譯這個urlct <- read_html(url,encoding = "utf-8")%>%html_text()ct1 <- ct %>% fromJSON()# 提取json中對應的數(shù)據模塊text = ct1$data['text']
author = ct1$data['name']
related_companies = ct1$data['related_companies']
likes = ct1$data['likes']
cmts = ct1$data['cmts']
spreads = ct1$data['spreads']
fheight = ct1$data['fheight']
time = ct1$data['time']# 數(shù)據合并result = data.frame(text = text,author=author,related_companies=related_companies,
likes=likes,cmts=cmts,spreads=spreads,fheight=fheight,time = time,
stringsAsFactors = F)result$company = apply(related_companies,1,function(x)x[[1]]$name)result = select(result,text,name,likes,cmts,time,company)# 預覽head(result,10)
弄完之后,通過預覽相满,數(shù)據都被整齊的扒下來了:
上面就是教你怎么直接爬取脈脈數(shù)據的方法层亿,直接開擼吧??!
回到之前的疑問立美,當我們在玩脈脈的時候我們在關注著什么匿又,請看下回!