接上篇。
参考文章
安装R包rvest与xml2
install.packages("xml2"); library("xml2")
install.packages("rvest"); library("revst")
爬取数据
以新浪网为例 http://finance.sina.com.cn/roll/index.d.html?cid=56589&page=1
使用嵌入selectorgadget插件的谷歌浏览器打开网页,在空白处右键,查看源码。找到该网页的编码方式——“charset",charset是啥意思,我也不清楚,但我搜到了介绍charset的文章。
![](https://img.haomeiwen.com/i18745336/8b18acbe6cf1c94f.png)
如上图所示,"charset=utf-8",这表明该网页字符编码类型是UTF-8。然后我们把这个网站R语言:
#指定网址
> url<-"http://finance.sina.com.cn/roll/index.d.html?cid=56589&page=1"
#指定编码类型
> webpage<-read_html(url,encoding = "utf-8")
#看看webpage是个什么玩意
> class(webpage)
[1] "xml_document" "xml_node"
#至此把网页读进了R
点击右上角的selectorgadget图标选取网页元素,参考教程选取的第一个,我这里也选取第一个
![](https://img.haomeiwen.com/i18745336/f7725f5c71c40733.png)
下方出现了个框
![](https://img.haomeiwen.com/i18745336/314bedf98e415d31.png)
这a啥意思?不知道。继续跟着教程往下走吧。
#告诉R我们想爬取网页的节点
> news_html<-html_nodes(webpage,"a")
> class(news_html)
[1] "xml_nodeset"
> head(news_html)
{xml_nodeset (6)}
[1] <a href="http://finance.sina.com.cn/"><img src="http://i1.sinaimg.cn/dy/ ...
[2] <a href="http://finance.sina.com.cn/"><img src="http://i1.sinaimg.cn/dy/ ...
[3] <a href="http://finance.sina.com.cn/">财经首页</a>
[4] <a href="http://www.sina.com.cn/">新浪首页</a>
[5] <a href="http://news.sina.com.cn/guide/">新浪导航</a>
[6] <a href="http://finance.sina.com.cn/stock/">沪深股票</a>
#提取文本
> news<-html_text(news_html)
> head(news)
[1] "" "" "财经首页" "新浪首页" "新浪导航" "沪深股票"
因为网页中有很多图片,html_text只把文字提取出来了。rvest,xml2包还有很多功能可以研究,这篇文章只是重复一位大佬的教程,他的教程后面还有很多我不明白的地方就不在这里重复了。
网友评论