尝试用RCurl获得产品的价格

时间:2013-02-17 15:09:42

标签: r web-scraping rcurl

我从网站上取消某些产品的价格。在Python中我使用urllib2没有问题,但是当我尝试在R中使用RCurl时,我无法下载源代码。

我必须将源代码粘贴到产品代码中,然后我就抓住了价格。产品的路径是:http://www.americanas.com.br/produto/code_of_product

实际上,我无法使用RCurl下载产品的源代码。当我尝试例如getURL('http://www.americanas.com.br/produto/111467594')时,它返回“”。

我尝试使用getURL('... / produtos / 111467594')我可以下载源代码,但这样我就无法得到价格。 :(

任何人都知道我怎么能得到产品的价格?

感谢。

Ps。:抱歉我的英语不好。 :)

1 个答案:

答案 0 :(得分:2)

欢迎来到StackOverflow。

很难说为什么它不起作用,你能在verbose=TRUE中加入getURL吗?另外,我注意到您链接的网页上有不同的价格。你想要全部还是仅仅是第一个?如何获得“Por price”:

library("stringr")

productwebpage<-readLines("http://www.americanas.com.br/produto/111467594")
pricerow<-productwebpage[grep("p class=\"sale price\"",productwebpage)] 
price<-str_extract_all(pricerow,"\\(?[0-9,.]+\\)?")[[1]]

您也可以将grep("p class=\"sale price\"",productwebpage)替换为grep("<p><span class=\"regular price\">",productwebpage)(获得“de price”/旧价格)或grep("<span class=\"p-v interest\">",productwebpage)(这将为您提供“sem jouros”价格/每月付款)。对于最后一个示例,您将获得前几个月和之后的付款,因此它将是:

> price
[1] "12"    "83,25"

这应该也适用于其他产品(只需尝试5并且似乎适用于所有产品)。