R语言中rvest包爬虫代码+讲解

  • rvest包
    • 确定节点
    • R爬虫示例:爬取当当网销量数据

rvest包

R语言中有许多用于爬取数据的包,本篇文章主要讲解rvest包的使用。首先讲解rvest包中的主要函数。
1.read_html():用于读取html(文档)的函数;
2.html_nodes():用于选取文档中指定的元素、节点的部分;
3.html_text():用于提取标签中的文本;
4.html_attrs():用于提取属性名称及其内容。

使用rvest包爬取数据简单易懂,本篇文章详解了节点确认并用示例加深印象,非常适合爬虫小白入手。

确定节点

用rvest包对网页数据进行爬取时,爬取的难点及重点都是如何确认html_nodes函数中的节点参数,为节省爬取数据的时间和精力,我们应该借助强大的谷歌插件CSS生成器——Selectorgadget插件,它有助于我们快速找到html的节点信息,所以本篇文章会详细讲解如何准确确认节点。
1.工具:Selectorgadget插件

2.下载方式:可参照我上一篇博客,直接下载,压缩包内附有安装步骤

3.使用方式:

(1)打开一个网页,如dangdang
(2)开启SelectorGadget(点击一个放大镜图案的按钮即可);
移动鼠标箭头到一个页面元素上并单击,该页面元素会变成绿色,SelectorGadget的文本框内显示出被选中页面元素的css path类型的定位字符串。“clear”按钮可以清空定位字符串,“clear”按钮中的数字是指定位字符串可以匹配的页面元素个数,其它具有相同定位字符串的页面元素都将变为黄色。单击这些黄色的页面元素,这些元素变为红色,表示剔除它们,用这种方式不断改变定位字符串,最终生成被选中元素的特有的定位字符串。

R爬虫示例:爬取当当网销量数据

运用R语言爬取当当网的销量排行等信息,并把数据保存在E盘csv文件中。

```#爬取当当网数据,成功自己实现
library(rvest)
library(stringr)
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()#价格
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") %>% html_text() %>%str_match("[0-9]*") %>% as.numeric()#??str_match的用法??#图书网址
webpage <- web %>% html_nodes(".name a") %>% html_attr("href")#网址就是书名中带有的链接
#提取属性特征即可#生成数据框
data <- data.frame(rank, title, writer, price,publication_company, date,discount,tuijian, webpage)
write.csv(data,file="E:/gdangshuju.csv")#将爬取的数据存入E盘中的dangdangshuju文件中,R会自动生成这个文件,不需要自己重新创建

R语言中rvest包爬虫代码+示例讲解(爬取当当网)相关推荐

  1. Python爬虫实战+Scrapy框架 爬取当当网图书信息

    1.环境准备 1.在python虚拟环境终端使用 pip install scrapy下载scrapy依赖库 2.使用scrapy startproject book创建scrapy心目工程 3.使用 ...

  2. 在当当买了python怎么下载源代码-爬虫实战一:爬取当当网所有 Python 书籍

    图片来自 unsplash 我们已经学习 urllib.re.BeautifulSoup 这三个库的用法.但只是停留在理论层面上,还需实践来检验学习成果.因此,本文主要讲解如何利用我们刚才的几个库去实 ...

  3. python爬虫爬当当网_爬虫实战一:爬取当当网所有 Python 书籍

    本文转载自微信公众号[ 极客猴 ],作者知乎主页 此前错误标注来源导致侵权,在此表示歉意. 我们已经学习 urllib.re.BeautifulSoup 这三个库的用法.但只是停留在理论层面上,还需实 ...

  4. 请用Python写一个爬虫程序,爬取当当网图书畅销榜数据

    好的,下面是一个简单的 Python 爬虫代码,可以爬取当当网图书畅销榜数据: import requests from bs4 import BeautifulSoupurl = "htt ...

  5. Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息

    XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...

  6. Python爬虫 在线爬取当当网畅销书Top500的图书信息

    本实例还有另外的离线爬虫实现,有兴趣可点击离线爬取当当网畅销书Top500的图书信息 爬虫说明 1.使用requests和Lxml库爬取,(用BS4也很简单,这里是为了练习Xpath的语法) 2.爬虫 ...

  7. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  8. 在当当买了python怎么下载源代码-爬虫实战:爬取当当网所有 Python 书籍

    来源:公众号-极客猴 出处: 本文主要讲解如何利用urllib.re.BeautifulSoup 这几个库去实战,爬取当当网所有 Python 书籍. 1 确定爬取目标 任何网站皆可爬取,就看你要不要 ...

  9. python爬虫06 | 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍

    来啦,老弟 我们已经知道怎么使用 Requests 进行各种请求骚操作 也知道了对服务器返回的数据如何使用 正则表达式 来过滤我们想要的内容 ... 那么接下来 我们就使用 requests 和 re ...

  10. python爬虫什么书好_python爬虫入门06 | 爬取当当网 Top 500 本五星好评书籍

    来啦,老弟 image 我们已经知道怎么使用 Requests 进行各种请求骚操作 也知道了对服务器返回的数据如何使用 正则表达式 来过滤我们想要的内容 - 那么接下来 我们就使用 requests ...

最新文章

  1. Maven Eclipse Run as 命令
  2. g-gdb调试core文件
  3. 基于python的压测工具_Python Locust性能测试简介及框架实践
  4. 如何在java中去除中文文本的停用词
  5. 【皇甫】☀说说那些选择器
  6. Ubuntu14.04安装wine QQ
  7. Spring Boot 发布 jar 包转为 war 包秘籍。
  8. python web开发 网络编程 TCP/IP UDP协议
  9. 用java设计一个二叉树类的结构,在JAVA中实现的二叉树结构
  10. [ubuntu] tmux 窗口不是全屏
  11. asp.net mvc中加入log4net记录错误日志
  12. Mac 开发 Hue
  13. mysql数据库 安装后 闪_MySQL数据库:第十五章:MySQL安装到最后一步未响应MySQL Server Instance Configuration Wizard...
  14. ISO 9001是什么?ISO 9001 质量管理体系详细介绍
  15. 3DS MAX 基础知识 材质编辑器
  16. 小马马说MapReduce算法案例(1):二度人脉好友推荐
  17. 英语语法回顾1——简单句
  18. 信创操作系统--统信UOS桌面版(使用终端:bash、tty、基本shell操作)
  19. MyEclipse导入项目后报Unknown Faceted Project Problem (Java Version Mismatch)的解决方法
  20. qt 调用linux键盘输入,嵌入式linux上QT标准键盘输入的实现

热门文章

  1. Proteus 8.6软件安装教程
  2. Listary安装+破解
  3. 用python做计算器(超级版)
  4. Java eclipse汉字乱码解决
  5. 2023年长安大学外国语言文学考研考情与难度及上岸前辈备考经验
  6. Sqlite加密问题
  7. 绝地求生key钓鱼全套教程加源码
  8. postman自动化测试
  9. SQL Server数据库出现恢复挂起时的解决办法
  10. C# MD5算法实现对文件校验