• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言爬虫:当当图书畅销榜(近7日)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

时间:2018-10-9
爬取内容:当当图书畅销榜(近7日):书名、作者、出版社、推荐率、出版时间、价格、折扣、网址


R语言爬虫:当当图书畅销榜(近7日)

通过对其他人爬虫代码的学习,发现有相当一部分人对的代码中出现了“%>%”等内容,不知其意。无意中发现该部分内容是magrittr包的管道操作,于是对其进行了学习,并在对当当图书数据的爬取中使用了该管道操作。(参考教程:R语言中管道操作

代码所用到的函数如下:

函数 说明
read_html() 保存网页
html_nodes() 提取网页指定节点内容
html_text() 提取网页文本信息
str_match() 提取字符串中满足要求的部分
as.numeric() 将变量转为数值型
as.Date() 将变量转为日期型
data.frame() 生成数据框
html_attr() 提取网页指定属性内容

爬取第一页数据,即前20位图书的数据。
代码如下:

> library(rvest)
> library(XML)
> library(stringr)
> library(magrittr)
> url <- "http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-recent7-0-0-1-1"
> web <- read_html(url, encoding = "gbk")
> # 排行
> 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()
> # 推荐率
> tuijian <- web %>% html_nodes(".tuijian") %>% html_text() %>%
+   str_match("[0-9]*") %>% as.numeric()
> # 出版日期
> date <- web %>% html_nodes(".publisher_info span") %>% html_text() %>% as.Date()
> # 价格
> price <- web %>% html_nodes("p:nth-child(1) .price_n") %>% html_text() %>%
+   str_match("[0-9]{2}.[0-9]{2}") %>% as.numeric()
> # 折扣
> discount <- web %>% html_nodes(".price_s") %>% html_text()
> # 出版社
> publication_company <- web %>% html_nodes(".publisher_info span+ a") %>% html_text()
> # 图书网址
> webpage <- web %>% html_nodes(".name a") %>% html_attr("href")
> # 生成数据框
> Data <- data.frame(rank, title, writer, publication_company, date, price, discount, tuijian, webpage)

爬取得到的数据如下:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言的下载安装发布时间:2022-07-18
下一篇:
人工智能入门-R语言数据分析与数75发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap