全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6619 16
2014-12-02
悬赏 50 个论坛币 已解决
谁能把京东商城手机各品牌的机型、价格、评价人数抓取出来,列在一张表里?比如:
品牌 机型 价格  评价人数
华为 P7    2200    20000

小米 mi     699      100000

最佳答案

daishen 查看完整内容

完整版: 经过请教高手,找到隐藏价格的网页,这样你所需要的价格信息也出来了。 require(stringr) require(rvest) require(rjson) myfun = function(x){ url = str_c("http://list.jd.com/list.html?cat=9987%2C653%2C655&page=",x,"&JL=6_0_0") brand = url %>% html_session() %>% html_nodes(".right-extra .p-name a") %>% html_text() b = brand[-c(1:(length(brand) - 60))] %>% ...
二维码

扫码加我 拉你入群

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

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

全部回复
2014-12-2 22:15:14
完整版:
经过请教高手,找到隐藏价格的网页,这样你所需要的价格信息也出来了。
require(stringr)
require(rvest)
require(rjson)

myfun = function(x){
          url = str_c("http://list.jd.com/list.html?cat=9987%2C653%2C655&page=",x,"&JL=6_0_0")
          brand = url %>% html_session() %>% html_nodes(".right-extra .p-name a") %>% html_text()
          b = brand[-c(1:(length(brand) - 60))] %>% strsplit(" ")
          b1 = sapply(1:60,function(i) paste(b[[i]][1],collapse = ''))
          b2 = sapply(1:60,function(i) paste(b[[i]][2],collapse = ''))
          b3 = sapply(1:60,function(i) paste(b[[i]][-c(1:2)],collapse = ''))
          evalue = url %>% html_session() %>% html_nodes(".evaluate a") %>% html_text() %>% str_extract("\\d+")
          price = url %>% html_session() %>% html_nodes(".p-price span") %>% html_attrs() %>% unlist %>% as.vector %>% str_replace('p','J_')
          price1 = apply(as.matrix(price),2,paste,collapse = ',')
         
          u = str_c("http://p.3.cn/prices/mgets?skuIds=",price1)
          dat = u %>% html() %>% html_nodes("p") %>% html_text()
          p = fromJSON(dat)
          price =sapply(1:60,function(i) p[[i]]$p)
         
          data.frame(品牌 = b1,型号 = b2,性能描述 = b3,评价 = evalue,价格 = price)
        }

dat = lapply(1:4,myfun) #总计有44页
total = do.call(rbind,dat)

> tail(total)
              品牌     型号                          性能描述 评价人数    价格
235          IUNI       U2              32GB冰峰银联通3G手机     1723 1199.00
236 诺基亚(NOKIA)    Lumia         830(RM-984)黑色联通3G手机      734 1699.00
237          华为   C8817E                      黑电信4G手机      467  799.00
238           TCL 老人手机        (i310)纯净白移动联通2G手机    10970  199.00
239          联想 黄金斗士 A8(A808t-i)8G阿尔卑斯白移动4G手机      743  698.00
240          IUNI       U3  32GB墨池黑移动联通4G手机双卡双待     1056 2000.00
二维码

扫码加我 拉你入群

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

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

2014-12-3 12:20:44
高难度 目前不会
二维码

扫码加我 拉你入群

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

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

2015-1-11 12:18:43
daishen:

看到你抓足球彩票写的程序,抓取京东商城,能否写个?

谢谢!
二维码

扫码加我 拉你入群

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

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

2015-1-11 13:48:54
没有提供API的,要分析页面框架才能抓取的,不同的页面不一样。你应该把需求提的更具体一点,比如JD的哪个页面,抓多少行数据。
二维码

扫码加我 拉你入群

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

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

2015-1-11 21:23:50
qimhe 发表于 2015-1-11 13:48
没有提供API的,要分析页面框架才能抓取的,不同的页面不一样。你应该把需求提的更具体一点,比如JD的哪个页 ...
你好,我是新手,刚入门,请多多包涵。我把网页地址发给您看看,具体哪个地址不重要,只要把手机相关信息提取出来就OK。京东商城手机界面网址

通过抓取这个链接,有41页手机信息,2442个商品。
实现2442个手机 品牌、型号、性能描述、价格、评价人数放在一个数据框显示。

附件列表
1.jpg

原图尺寸 268.47 KB

1.jpg

二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群