楼主: tokey001
3984 3

[问答] 抓取淘宝数据,单个进行抓取时成功,使用循环时结果为空 [推广有奖]

  • 2关注
  • 1粉丝

讲师

64%

还不是VIP/贵宾

-

威望
0
论坛币
878 个
通用积分
0
学术水平
1 点
热心指数
3 点
信用等级
1 点
经验
5037 点
帖子
265
精华
0
在线时间
327 小时
注册时间
2012-2-13
最后登录
2017-5-8

楼主
tokey001 在职认证  发表于 2014-5-26 23:12:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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





二维码

扫码加我 拉你入群

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

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

关键词:淘宝数据 Library Taobao detail Etail 淘宝数据 library 网页

沙发
kuma.kobe 发表于 2015-6-16 11:42:54
你用的是什么语言?Python?

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

板凳
karen_17 发表于 2015-10-13 09:39:52
没太看明白。。。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 05:48