全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3949 3
2014-05-26

  • 从以下网页抓取淘宝名称和价格:
    ##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>





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-6-16 11:42:54
你用的是什么语言?Python?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-18 12:40:52
你的循环设置有问题,for(i_url in url)中i_url是不变的,而且跟i=1扯不上关系,另外这个网页现在搜不到了,可以换个网页再试验。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-13 09:39:52
没太看明白。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群