R语言XML包的数据抓取

htmlParse 函数

htmlParse加抓HTML页面的函数。

url1<-"http://www.caixin.com/"
url<-htmlParse(url1,encoding="UTF-8")

但是有的网站会出现报错。例如淘宝,错误信息为:

Warning message:
XML content does not seem to be XML: ‘https://www.taobao.com/‘

原因为htmlParse可以抓取http的页面,不能抓取https的页面
getNodeSet函数

getNodeSet获取适当信息节点的信息

//表示任意个HMTL嵌套标签 *表示任意的HTML标签 /表示下一级标签

xpath<-"//meta[@name]"

test<-getNodeSet(url,xpath)

xmlValue函数

xmlValue函数用于读取信息节点的内容

xmlValue(test[[1]])

结果为无

xmlGetAttr函数

xmlGetAttr函数用于读取信息节点的属性

xmlGetAttr(test[[1]],‘name‘)

结果为"keywords"

问题遗留:1)xml包不能加载https。2)有些抓取不出来,例如span后的数据。

例如

url1<-"http://www.amazon.cn/gp/product/B00C93NHHY/ref=s9_simh_gw_p421_d0_i1?pf_rd_m=A1AJ19PSB66TGU&pf_rd_s=center-3&pf_rd_r=10TJ5625EJ46C17SN3ZN&pf_rd_t=101&pf_rd_p=58223152&pf_rd_i=899254051"

url<-htmlParse(url1,encoding="UTF-8")

xpath<-"//span[@id=‘priceblock_ourprice‘]"

test<-getNodeSet(url,xpath)

却抓取不出他的单价。(初学数据抓取)

时间: 2024-08-04 22:12:16

R语言XML包的数据抓取的相关文章

R语言XML格式数据导入与处理

数据解析 XML是一种可扩展标记语言,它被设计用来传输和存储数据.XML是各种应用程序之间进行数据传输的最常用的工具.它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引.排序.查找.相关一致性等,它仅仅是存储数据.事实上它与其他数据表现形式最大的不同是:它极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同. 针对XML格式数据,R语言XML包可以对其进行数据导入与处理,详见下面的案例说明. 案例1 直接输入一段标

爬虫---selenium动态网页数据抓取

动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面.因为传统的在传输数据格式方面,使用的是XML语法.因此叫做AJAX,其实现在数据交互基本上都是使用JSON.使用AJAX加载的数据,即使使用了JS,将数

第四章爬虫进阶之动态网页数据抓取

动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面.因为传统的在传输数据格式方面,使用的是XML语法.因此叫做AJAX,其实现在数据交互基本上都是使用JSON.使用AJAX加载的数据,即使使用了JS,将数

利用Selenium制作python数据抓取,以及对Selenium资源介绍

当当当~第三篇博客开始啦~ 这次的话题是数据抓取.终于到了核心部分的探讨,我的心情也是非常激动啊!如果大家baidu或者google(如果可以的话)数据抓取或者data crawling,将会找到数以千计的例子.但是大多数的代码非常的冗长,并且许多代码还是抓取静态数据之后,对动态JS写成的数据却毫无办法.或者,利用HTML解析网址后,再找到JS写的数据页面来寻找到所想要的数据. 但是!不知各位是否有发现过,如果打开chrome或者safari或者各种浏览器的审查元素.网页上能看到的数据,其实都会

Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)

概要: 这篇博文主要讲一下如何使用Phantomjs进行数据抓取,这里面抓的网站是太平洋电脑网估价的内容.主要是对电脑笔记本以及他们的属性进行抓取,然后在使用nodejs进行下载图片和插入数据库操作. 先进行所有页面的内容进行抓取 var page =require('webpage').create(); var address='http://product.pconline.com.cn/server/'; var fs = require('fs'); var mypath = 'ver

Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)

概要 这篇博客是在上一篇博客Phantomjs+Nodejs+Mysql数据抓取(1.抓取数据) http://blog.csdn.net/jokerkon/article/details/50868880 后进行的第二部分,请各位读者在看这篇博客之前先浏览上一篇,因为这里面有部分代码会沿用到上一部分的抓取结果. 好,现在开始正式的抓取图片的讲解 首先,我们先来看看代码: var page =require('webpage').create(); var address='http://pro

C# 微信 生活助手 空气质量 天气预报等 效果展示 数据抓取 (一)

第一次在博客园写博客写的不好,大家见谅.最近工作辞了,然后感冒发烧输了一个星期的液,感觉很烦躁,心情不是很好,在帝都感觉压力大,废话不说了开始正题把! 还没有完全完成,后续考虑开源! 可以关注微信公众帐号体验一下先看下 效果把 先介绍下工具 我用的有 httpwatch,fiddler 国家环保部的数据链接 http://datacenter.mep.gov.cn/report/air_daily/airDairyCityHour.jsp 原以为直接get请求就可以了 试了下 发现没有获取了 然

Hibernate学习---第十一节:Hibernate之数据抓取策略&amp;批量抓取

1.hibernate 也可以通过标准的 SQL 进行查询 (1).将SQL查询写在 java 代码中 /** * 查询所有 */ @Test public void testQuery(){ // 基于标准的 sql 语句查询 String sql = "select * from t_person"; // 通过 createSQLQuery 获取 SQLQuery,而 SQLQuer 是 Query的子类 SQLQuery query = session.createSQLQue

python-requests 简单实现数据抓取

安装包: requests,lxmlrequest包用于进行数据抓取,lxml用来进行数据解析对于对网页内容的处理,由于html本身并非如数据库一样为结构化的查询所见即所得,所以需要对网页的内容进行分析然后进行内容提取,lxml就是用来完成此项工作在requests中最用的方法为get()方法,通常情况下可以将url做为参数传入进去,对于一些功能比较完善的网站如果存在反爬取数据的功能是则需要设置headers参数内容,内容为一字典类型可以在浏览器中查看User-Agent字段的内容,设置后req