作为一个屌丝数据分析狮,倘若你突然来找我,可能我不是在跑数据,就是在整理数据ing(典型的数据搬运工...😳);当然,偶尔在MapReduce任务刚刚开始的时候,我也会打个盹:
image不要问我打盹的时候在干嘛,🤦♂️,刷脉脉!!!!
不要问我脉脉是啥!!自己百度去....(一个匿名浮躁且充满暴击的社区)。
有图为证:
image话说本屌已经被暴击的体无完肤;突然转而一想,这些经常逛脉脉的人一般都在关注些什么?
进入正题,我开始尝试爬取脉脉“职言”板块的帖子。
究竟怎么弄,那就给你简单粗暴的介绍一下(说详细了你也不会看😄)。
“职言”板块就一个外链(其实被隐藏),没有翻页(其实有)靠下拉;比如下面这个图,你下拉,链接永远是这一个“https://maimai.cn/gossip_list”
image那么如何找到真正请求的url,请遵守以下顺序:点击鼠标右键-检查-Network-XHR-刷新当前页面-从XHR中出现的一系列url开始寻找-找到很多值的那个url;
比如以下图片,该url对应的响应数据刚好就是页面上展示的结果,就是它!
image那么找到了url之后我们在浏览器中单独看下这个url的效果:
image擦,这个正是我们想要的,url返回了详细json格式数据;这里面主要的释义如下:
text:帖子文本
author:作者time:发布时间
amts:评论数
circles_views:浏览数
likes:喜欢数
spreads:转发数related_companies:话题涉及的公司名称
好了,下面是代码环节,本系列采用R语言实现整个操作;
R的爬虫生态明显弱于Python,不过R的实现过程也是非常有趣(主要是代码简单...):
library(rvest) # rvest r爬虫library(magrittr) # 管道函数library(dplyr) # 数据处理# 寻找到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中对应的数据模块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']# 数据合并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)
弄完之后,通过预览,数据都被整齐的扒下来了:
image上面就是教你怎么直接爬取脉脉数据的方法,直接开撸吧😄!
回到之前的疑问,当我们在玩脉脉的时候我们在关注着什么,请看下回!
网友评论