第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

rvest包總結(jié)

標(biāo)簽:
Java

阅读数:290

1、rvest介绍

网络爬虫是讲呈现在网页上以非结构格式(html)存储的数据转化为结构化数据的技术,该技术非常简单易用。

rvest是R用户使用率最多的爬虫包,它简洁的语法可以解决大部分的爬虫问题。

基本使用方法:

  1. 使用read_html读取网页;

  2. 通过CSS或Xpath获取所需要的节点并使用html_nodes读取节点内容;

  3. 结合stringr包对数据进行清理。

与Python的比较:

  • Python倾向于做大型爬虫,与R相比,语法相对复杂,因此Python爬虫的学习曲线会相对陡峭。

  • 对于那些时间宝贵,又想从网上获取数据的初学者而言,用R做爬虫是最好的选择:

  1. R语法相对直观,规则更加灵活;

  2. 对于数据量不大的用户来数(小于百万级),R也能够非常自如地处理;

  3. 先学习R爬虫,等熟悉爬虫的原理之后,在过渡到Python是很容易的。


2、API介绍

读取与提取:

  • read_html( ) 读取html文档的函数

  • html_nodes( ) 选择提取文档中指定元素的部分

  • html_name( ) 提取标签名称;

  • html_text( ) 提取标签内的文本;

  • html_attr( ) 提取指定属性的内容;

  • html_attrs( ) 提取所有的属性名称及其内容;

  • html_table( ) 解析网页数据表的数据到R的数据框中;

  • html_form( ) 提取表单。

乱码处理:

  • guess_encoding( ) 用来探测文档的编码,方便我们在读入html文档时设置正确的编码格式

url <- "

x <- content(GET(url), "raw")

guess_encoding(x)

guess_encoding( )

用于探测网页的编码,遇到编码错误用这个解决

行为模拟:

3、函数详解

—3.1 读取与提取

——3.1.1 read_html

函数定义:read_html(x, encoding = "", ..., options = c("RECOVER", "NOERROR", "NOBLANKS"))

参数列表:

应用实例:

webp

image

——3.1.2 html_nodes

函数定义:

html_node只输出一个元素。当给了一个节点列表时,html_node将返回一个长度相等的列表。

参数列表:

应用实例:

webp

image

webp

image

——3.1.3 html_name

函数定义:html_name(x)

参数列表:x 完整的文档(XMLInternalDocument),标签列表(XMLNodeSet)或(XMLInternalElementNode)

应用实例:

webp

image

——3.1.4 html_text

函数定义:html_text(x, trim = FALSE)

参数列表:

应用实例:

webp

image

——3.1.5 html_attr

函数定义:

参数列表:

应用实例:

webp

image

——3.1.6 html_table

函数定义:html_table(x, header = NA, trim = TRUE, fill = FALSE, dec = ".")

参数列表:

应用实例:

webp

image

——3.1.7 html_form

函数定义:html_form(x)

参数列表:x 网页文档、节点集或单个节点

应用实例:

webp

image

—3.2 乱码处理

——3.2.1 guess_encoding

函数定义:guess_encoding(x)

参数列表:x 字符型向量

应用实例:

webp

image

webp

image

——3.2.2 repair_encoding

函数定义:repair_encoding(x, from = NULL)

参数列表:

应用实例:

webp

image

—3.3 行为模拟

——3.3.1 set_values( ) 修改表单

函数定义:set_values(form, ...)

参数列表:

应用实例:

webp

image

——3.3.2 submit_form

函数定义:submit_form(session, form, submit = NULL, ...)

参数列表:

应用实例:

webp

image

webp

image

——3.3.3 html_session

函数定义:

参数列表:

方法:

一个session结构可以响应httr和html方法的操作:可以访问请求的属性,以及可以使用html_nodes访问html。

应用实例:

webp

image

——3.3.4 jump_to

函数定义:jump_to(x, url, ...)

参数列表:

应用实例:

webp

image

——3.3.5 follow_link

函数定义:follow_link(x, i, css, xpath, ...)

参数列表:

应用实例:

webp

image

——3.3.6 session_history

函数定义:

参数列表:x 一个会话

应用实例:

webp

image

4、补充知识

—4.1  包外API

  1. head( ) 检查数据

  2. as.numeric( ) 转化为数值型

  3. gsub( ) 移除" ", "\n", "\t"等

  4. as.factor( ) 转化为因子

  5. data.frame( ) 合并为数据框

  6. trycatch( ) 错误处理

  7. write.csv( ) 输出csv文件

  8. file.download( ) 下载网络文件

  9. read.table( ) 读取本地文件

  10. save( ) 保存变量到本地

  11. sapply( ) 向量化调用函数

  12. iconv( ) 转化编码格式

  13. rbind( ) 合并行

  14. paste( ) 连接字符串,多用来生成有规律的链接地址

—4.2 关联package

  1. stringr 字符串处理

  2. RSelenium 模拟网页操作,可抓取动态页面

  3. ggplot2 数据可视化

  4. magrittr 辅助rvest

—4.3 使用技巧

  1. 获取特定序位的html标签,用到了magrittr包里的extract2函数。下面两行代码都可以获得该网页中第一个<table>标签

  1. %>%是管道操作符,意思是把左边的操作结果作为参数传递给右边的命令

  2. 需要换页的同类型页面的地址一般会有规律,找到规律后就可生成一系列地址

  3. 定位所需内容时,有时html_nodes+stringr更方便,不使用html_text

  4. 若爬取内容过多,可使用边爬边存或者分批处理等



作者:Liam_ml
链接:https://www.jianshu.com/p/d75cef164791


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
205
獲贊與收藏
1011

關(guān)注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消