首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用R从连续URL中抓取Web

利用R从连续URL中抓取Web
EN

Stack Overflow用户
提问于 2014-06-11 03:06:33
回答 1查看 488关注 0票数 0

我试图从一个网站的数据,列出多个产品的评级。那么,假设一个产品有800个品牌。因此,与10个品牌每页,我将需要从8页的数据。这是婴儿护理的数据。我需要价值24页的品牌- order=DESC#!rf%3D%26rf%3D%26rf%3D%26cat%3D152775%26page%3D1%26filter%3D%26sort_by_type%3Drating%26sort_order%3DDESC%26meta_ontology_node_id%3D

我已经使用粗体字体1,因为这是唯一的东西,在这个网址,因为我们从一个页面移动到另一个页面。所以,我想在R中直接写一个循环,但是我发现当我移动到第2页时,页面就不会再加载了。相反,只需在大约5秒内更新结果。然而,R不等待5秒,因此,我从第一页的数据26次。

我还尝试直接输入第2页url,并在没有循环的情况下运行代码。同样的故事-我得到了第一页的结果。我相信我不是唯一一个面对这件事的人。任何帮助都是非常感谢的。我已经附上了密码。

谢谢你一百万。我希望我的问题足够清楚。

代码语言:javascript
复制
# build the URL

N<-matrix(NA,26,15)
R<-matrix(NA,26,60)

for(n in 1:26){

url <- paste("http://www.goodguide.com/products?category_id=152775-baby-care&sort_order=DESC#!rf%3D%26rf%3D%26rf%3D%26cat%3D152775%26page%3D",i,"%26filter%3D%26sort_by_type%3Drating%26sort_order%3DDESC%26meta_ontology_node_id%3D")


raw.data <-readLines(url)

Parse <- htmlParse(raw.data)

#####
A<-querySelector(Parse, "div.results-container")

#####
Name<-querySelectorAll(A,"div.reviews>a")
Ratings<-querySelectorAll(A,"div.value")

N[n,]<-sapply(Name,function(x)xmlGetAttr(x,"href"))
R[n,]<-sapply(Ratings,xmlValue)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 03:52:58

参考html源,可以将您想要的urls简化为这个结构:

http://www.goodguide.com/products?category_id=152775-baby-care&page=2&sort_orde‌​r=DESC.

R按预期检索这些urls的内容。

请注意,您还可以直接转到:

代码语言:javascript
复制
u <- sprintf('http://www.goodguide.com/products?category_id=152775-baby-car‌​e&page=%s&sort_order=DESC', n)
Parse <- htmlParse(u)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24154014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档