首页 > 编程知识 正文

python爬虫步骤,r语言网页爬虫实例

时间:2023-05-05 14:08:32 阅读:44416 作者:3414

安装包

#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 ),因为我们搜索到的文本是中文,提交请求后,链接中的中文将再次编码。 通过执行以下语句,可以将链接设置为友好的形式:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。