分享

第一次用R语言爬虫

 萌小芊 2018-01-19

      一直都想学习用R语言爬虫,昨天晚上初步学习了一下rvest包和magrittr包。

     首先是magrittr包,主要定义了四个管道操作符%>%  %T>%  %$% 

 %<>%。我现在只用了%>%(向右操作符),它是把左侧的数据或表达式传递给右侧的函数或表达式进行运行,可以连续操作。

    如果我们想要实现取100个服从正态分布的随机数,再求这一百个数的绝对值并乘以50,再组成10*10的方阵,计算方阵每行均值,四舍五入保留整数,把结果除以7,画出余数直方图。常规的code:

set.seed(1234)

a=rnorm(100)

b=abs(a)*50

c=matrix(b,ncol=10)

d=round(apply(c,1,mean))

hist(d)

如果用上%>%,code变成:

set.seed(1234)

rnorm(100)%>%abs%>%'*'(50)%>%matrix(ncol=10)%>%round%>%'%%'(7)%>%hist


在爬虫中会经常用到%>%。

rvest包中:

read_html()  读取html文档,可以是网站链接,html本地文件,包含html的字符串也可以

html_nodes()   选择提取html文档中特定元素。可以是CSS selector,也可以是xpath selector。强烈推荐谷歌浏览器,右击所需要查看的元素,蛋鸡检查,在开发者模式中通过右击蓝色区域,单击copy,选择copy selector得到CSS,单击copyxpath得到Xpath。我觉得更好用的是谷歌浏览器的SelectorGadget插件,可以在网上下载。

然后rvest包里面还有很多函数,但我没用过,不大了解。


这一次爬取了拉勾网java职位。

library(rvest)

library(magrittr)

library(xml2)

site1<-'https:>

site2<-' filteroption='


for(page in 1:5){

  site<-paste(site1,page,site2,page,sep='>

  web<>

}

job<-web%>%html_nodes('h3')%>%html_text()

company<-web%>%html_nodes('.company_name a')%>%html_text()

benefit<-web%>%html_nodes('.li_b_r')%>%html_text()

wage<-web%>%html_nodes('.money')%>%html_text()

position<-web%>%html_nodes('em')%>%html_text()

position<>

information<>

write.csv(information,'C:\\Users\\Administrator\\Desktop\\11111.csv')

最后结果如下:

有什么问题可以一起讨论的~~~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多