找回密码
 立即注册
查看: 3254|回复: 0

抓取淘宝数据,单个进行抓取时成功,使用循环时结果为空

[复制链接]
发表于 2014-5-26 23:14:02 | 显示全部楼层 |阅读模式
从以下网页抓取淘宝名称和价格:
##http://spu.taobao.com/spu/3c/det ... 341228&cat=1101
##http://spu.taobao.com/spu/3c/det ... 228104&cat=1101



(源码来自http://www.bassary.com/?p=1105
按照以下代码抓取淘宝数据运行成功:
library(XML)
i_url=getURL("http://spu.taobao.com/spu/3c/detail.htm?spuid=203228104&cat=1101")
#i_url=getURL("http://spu.taobao.com/spu/3c/detail.htm?spuid=205341228&cat=1101");
i_url2<-htmlParse(i_url,asText=TRUE,encoding="UTF-8")#读取html数据
name<- getNodeSet(i_url2,"//div[@id='content']//div[@class='hd']//h1")#通过xpath找到网页中的name,注意路径中的单引号
name_text_tmp<-xmlValue(name[[1]])#提取name的内容
price<-getNodeSet(i_url2,"//div[@class='idec-shop-info']//span[@class='price']")#通过xpath找到网页中的price
price_text_tmp<-xmlValue(price[[1]])#提取price的内容
name_text<-name_text_tmp
price_text<-price_text_tmp
data.frame(name=name_text,price=price_text)
结果:
name price
1 Apple/1 MacBook Air MD231CH/A ¥7093
但当我需要同时搜寻两个网页时,运行结果为空,代码如下
read_taobao<-function(url){
#name_text<-""
#price_text<-""
i<-1
for(i_url in url){
i_url2<-htmlParse(i_url,asText=TRUE,encoding="UTF-8")#读取html数据
name<- getNodeSet(i_url2,"//div[@id='content']//div[@class='hd']//h1")#通过xpath找到网页中的name,注意路径中的单引号
#xpath://任意位置的 @是属性
name_text_tmp<-xmlValue(name[[1]])#提取name的内容
price<-getNodeSet(i_url2,"//div[@class='idec-shop-info']//span[@class='price']")#通过xpath找到网页中的price
price_text_tmp<-xmlValue(price[[1]])#提取price的内容
name_text<-name_text_tmp
price_text<-price_text_tmp
i<-i+1
print(name_text_tmp)
print(price_text_tmp)
}
data.frame(name=name_text,price=price_text)
}
url1="http://spu.taobao.com/spu/3c/detail.htm?spuid=205341228&cat=1101"
url2="http://spu.taobao.com/spu/3c/detail.htm?spuid=203228104&cat=1101"
url<-c(url1,url2)
read_taobao(url)
运行结果:
[1] NA
[1] NA
[1] NA
[1] NA
name price
1 <NA> <NA>
2 <NA> <NA>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 14:31 , Processed in 0.021348 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表