写在前面
如果对你有帮助的话,可以给我点个赞吗。
首先我们要有R这个软件,如果你没有,可以看看这篇博客,先把R装上:https://blog.csdn.net/qq_44762986/article/details/112283710
装上之后我们进入正题
一、单一网页的爬取
#加载程序包
library (stringi)
library (stringr)
library (selectr)
library (httr)
library (xml2)
library (rvest)
#爬取
w="http://vr.sina.com.cn/2021-03-16/doc-ikkntiam3038485.shtml"
web<-read_html(w,encoding="utf-8") %>% html_nodes("p") %>% html_text()
#read_html()函数负责读取网页,html_nodes()负责筛选出相应标签,html_text()负责抓出标签内文本
#去除无用信息
web=web[2:52]
web
#储存
write.table(web,"C:\\Users\\ljh30\\Desktop\\315晚会.txt")
解释
w="http://vr.sina.com.cn/2021-03-16/doc-ikkntiam3038485.shtml"
引号部分是要爬取的网页,我爬的是一个关于315晚会的新闻,这个网页的格式:utf-8
你要是换成别的网页,可以查看一下这个网页的编码。
web<-read_html(w,encoding="utf-8") %>% html_nodes("p") %>% html_text()
#read_html()函数负责读取网页,html_nodes()负责筛选出相应标签,html_text()负责抓出标签内文本
注释部分已经解释的差不多了,中间这个“%>%”是一个管道函数
%>%来自dplyr包的管道函数,其作用是将前一步的结果直接传参给下一步的函数,
从而省略了中间的赋值步骤,可以大量减少内存中的对象,节省内存。
符号%>%,这是管道操作,其意思是将%>%左边的对象传递给右边的函数,作为第一个选