安装包
#install.packages('RVest ' ) )。
查看rvest包的详细信息
库(help=RV est ) )。
包的使用方法:
read_html ) )是通过输入联机url、本地html文件或包含html的字符串来读取html文档的函数。
html_nodes ) )选择要从文档中提取指定元素的部分。 可以使用CSS选择器,如html_nodes(doc,' table td ' )。 也可以使用XPath选择器,如html_nodes(doc,xpath='//table//td ' )。
html_tag ) )提取标记名称; html_text ) )提取标签中的文本; html_attr ()提取指定属性的内容; html_attrs ()提取所有属性名称及其内容;
html_table ()将网络数据表中的数据分析成r的数据框。
html_form (、set_values、submit_form ) )分别表示表单的提取、修改和提交。
中文网页经常出现乱码问题。 这里使用guess_encoding来检测文档的编码,在导入html文档时设置正确的编码格式,并修复导入html文档后的乱码问题
另外,html_session (、jump_to )、follow_link )、back )、forward )、submit_form )等模拟网络上的浏览动作的相关
是库(RV est )
网络服务
position%html_nodes(p.pl ) %% html_text ) )
网络服务
位置
第一行是加载Rvest包。
第二行是使用read_html函数读取网页信息(类似于Rcurl中的getURL )。 此函数只需要注明网址和编码) (通常为UTF-8 )。
第三行是获取节点信息。 用%%符号分层。 因为web是以前存储网页信息的变量,所以从这里开始,html_nodes )函数将检索网页中的相应节点。 下面的代码简单地再现了原始页面的层次结构。 实际上,我们爬的信息显示25个class属性是pl
标签中的文本。
[清]科幻DMb著/人民文学出版社/1996-12/59.70元
对于这种结构,htmlnodes ()函数的写法是简单的' p.pl '。 其中“.”表示class属性的值,如果是id属性,则使用“#”。 如果学过CSS选择器就很清楚了,但完全一致。
最后,用html_text ()函数表示检索文本信息。 否则,整个返回
标签。 总体上可以通过以下代码行实现。
Example 2
要在天气网(http://lishi.tianqi.com/)上获取特定页面的数据,必须首先在浏览器中调试js代码。 在chrome中按F12键即可显示。 关键词:日期、最高气温.均可,获得以下信息: 我们需要的数据
在箱子里,每行的数据又在ul里。 可以从这两个特征中提取数据。 取得
和ul内容的r代码如下。 库(RV est ) )。
库(plyr )。
城市号
日期
基本用户
网址
内容%
read _ html (编码=' gbk ' ) %
HTML_nodes(div.TQTongji2) % )
html_nodes'ul'%%
html_text ()
是头(内容)
发现数据之间用rntt等分隔。 rntt包含换行符、换行符和制表符。 他们的共同点都是空间。 可以按空间排序,以提取适当的数据。
内容% str split ('s { 4,} ) )
内容
为了美观和便于操作,我们将它转换为数据框的格式:
内容
名称(内容)。
内容
Example 3 R爬行动物rvest包:穿越表格图像下载器
什么是对话? 会话是为了跟踪cookie,确保cookie长期有效,并且只有在会话关闭时cookie才处于禁用状态。 可以将“会话”(Session )视为在浏览器中打开的页面窗口。 之所以能在此窗口中执行很多操作,是因为服务器端知道您的cookie中存在有效的SessionID,服务器会一直通过您的请求,将资源传递给您。
为什么要创建会话? 稍后实现窗体漫游时,必须确保它在会话窗口中运行。
如何创建会话? 使用html_session ()函数。
欧陆
会话
表格是什么? HTML表单用于收集用户的各种类型的输入。 例如,登录表单、搜索框表单等。 HTML表单
包含表单元素。 表单元素是指各种类型的输入元素、复选框(box )、单选按钮(radio )、提交按钮(submit )等。 怎么穿越表格? 可分为下一步。
提取所需的表单。 html_form (
填写你的表格。 set _ values (表单,name1=value1,name2=value2) )。
提交表单并将其发送到服务器: submit_form(session,form ) ) ) ) ) ) )。
forms % html_form (
表单
表单
表单
在上面的结果中,只有' search_text' :的冒号之后为空。 这是因为“search_text”尚未输入值,输入任务是输入它。 例如,如果要搜索美人鱼,请在set_values ()中指定search_text参数,并将该值设置为美人鱼。
这样,我们的表格就完成了。 你只需要把那个提交给服务器。
filled_form
会话2
会话$ url #查看初始会话的URL
session2$url #查看提交表单后返回的新会话session2的url
iconv(urldecode(session2$URL )、' UTF8 ' ) ) ) ) ) ) ) ) ) )。
很明显,提交表格后,我们访问的链接发生了变化。
PS:session2$url包含许多符号(如%A %B ),因为我们搜索到的文本是中文,提交请求后,链接中的中文将再次编码。 通过执行以下语句,可以将链接设置为友好的形式: