【问题标题】:Trying get the price of products with RCurl尝试使用 RCurl 获取产品价格
【发布时间】:2024-11-07 03:00:02
【问题描述】:

我正在取消网站上某些产品的价格。在 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.:对不起我的英语不好。 :)

【问题讨论】:

    标签: r web-scraping rcurl


    【解决方案1】:

    欢迎使用 *。

    我很难说为什么它不起作用,你能在getURL 中包含一个verbose=TRUE 吗?另外,我注意到您链接的网页上有不同的价格。你想要全部还是第一个?怎么样才能得到“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("&lt;p&gt;&lt;span class=\"regular price\"&gt;",productwebpage)(以获得“de 价格”/旧价格)或grep("&lt;span class=\"p-v interest\"&gt;",productwebpage)(这将为您提供“sem jouros”价格/每月付款)。对于最后一个示例,您将首先获得月份,然后是付款:

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

    希望这也适用于其他产品(刚刚尝试了 5 种,似乎对所有产品都有效)。

    【讨论】:

    • @user2080573 如果您认为我已经回答了您的问题,您可以选择我的帖子作为答案,这样就可以清楚地看到该主题已得到回答。