楼主: enland
1781 0

[问答] R语言抓取网页数据 [推广有奖]

  • 0关注
  • 1粉丝

本科生

41%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1056 点
帖子
41
精华
0
在线时间
146 小时
注册时间
2012-9-6
最后登录
2019-1-11

楼主
enland 发表于 2016-3-8 17:13:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想咨询下这个程序哪里出问题了,读取不到99个列表页面内每个商品的URL地址,请高手指教!


# 存储99个分页的URL地址
url <- c()
for(i in 1:99){
    url <- c(url, paste("http://category.dangdang.com/cid4008120-pg", i, ".html", sep=""))
}
# 读取99个列表页面内每个商品的URL地址
library(XML)
read_url <- function(url){
    url_vector <- c()
    i <- 1
    for(i_url in url){
        i_url.html <- htmlParse(i_url, encoding="UTF-8")
        url.xpath <- getNodeSet(i_url.html, "//*[@class='shoplist']/ul/li[@name='lb']/div/a")
        url.i <- c()
        for(j in 1:length(url.xpath)){
            url.i <- c(url.i, xmlGetAttr(url.xpath[[j]], 'href'))
        }
        url_vector <- c(url_vector, url.i)
        i <- i+1
    }
    url_vector
}
urls <- read_url(url)
# 读取商品单页部分信息
read_xml <- function(url){
    id_vector <- c() # 商品id
    price_vector <- c() # 商品价格
    i <- 1
    for(i_url in url){
        i_url.html <- htmlParse(i_url, encoding="UTF-8")
        # 读取商品
        id.xpath <- getNodeSet(i_url.html, "//*[@id='prd_item_id']/i")
        id.i <- xmlValue(id.xpath[[1]])
        # 读取商品价格
        price.xpath <- getNodeSet(i_url.html, "//*[@id='salePriceTag']")
        price.i <- xmlValue(price.xpath[[1]])
        price.i <- substr(price.i, 2, nchar(price.i))
        # 存储向量
        id_vector[i] <- id.i
        price_vector[i] <- as.numeric(price.i)
        i <- i+1
    }
    data.frame(id=id_vector, price=price_vector)
}
data <- read_xml(urls)


二维码

扫码加我 拉你入群

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

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

关键词:抓取网页数据 R语言 url 网页 程序

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

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