R语言爬虫:当当网销售量Top500
运用R语言中rvest包对数据进行爬取。本文主要分为两个板块,第一版块主要讲解爬取一个页面数据的R语言代码,第二版块讲解批量爬取25个页面的R语言代码
文章目录
当仅仅爬取一页的数据时
提示:以下是本篇文章正文内容,下面案例可供参考
R语言代码及讲解
1.导入需要的函数
代码如下(示例):在这里插入代码片
library(rvest)
library(stringr)
2.读入网址
代码如下(示例):
web <- read_html(url, encoding = "gbk")
如果遇到报错,“类别为’closure’的对象不可以取子集
”,则一定要注意定义变量名时最好不要用r中自带的名字。(r中有自带的url,这时可以考虑给url换个名字即可)。给变量定义名称时,都需要多加注意。
3.从网页中爬取数据
代码如下(示例):在这里插入代码片
#排行
rank <- web %>% html_nodes(".list_num") %>% html_text() %>% as.numeric()
#书名
title <- web %>% html_nodes(" .name a") %>% html_text()
#作者
writer <- web %>% html_nodes(".publisher_info a:nth-child(1)") %>% html_text()
#价格
price <- web %>% html_nodes("p:nth-child(1) .price_n") %>% html_text() %>%str_match("[0-9]{2}.[0-9]{2}")%>%as.numeric()
#出版日期
date <- web %>% html_nodes(".publisher_info span") %>% html_text() %>% as.Date()
#出版地址
publication_company <- web %>% html_nodes(".publisher_info span+ a") %>% html_text()
#折扣
discount <- web %>% html_nodes(".price_s") %>% html_text()
#推荐率
tuijian <- web %>% html_nodes(".tuijian") %