2013-02-17 5 views
0

Im ломающ цену некоторых продуктов от вебсайта. В Python я использовал urllib2 без проблем, но когда я попытался использовать RCurl в R, я не смог загрузить исходный код.Попытка получить цену продуктов с RCurl

Мне нужно вставить исходный код с кодом продукта, затем я поймаю цену. Путь продукта: http://www.americanas.com.br/produto/code_of_product.

На самом деле, я не могу загрузить исходный код продукта с RCurl. Когда я пытаюсь, например, getURL ('http://www.americanas.com.br/produto/111467594'), он возвращает "".

Я попытался использовать getURL ('.../produtos/111467594'), и я мог бы скачать источник, но таким образом я не могу получить цену. :(

Кто-нибудь знает, как я мог бы получить цену продукции?

Спасибо.

Ps .: Извините за мой плохой английский. :)

ответ

2

прием к StackOverflow.

Трудно сказать для меня, почему это не работает, не могли бы вы включить verbose=TRUE в getURL? Кроме того, я замечаю, что на веб-странице, которую вы связали, есть разные цены. Вы хотите все или только первое? Как об этом, чтобы получить «Por цена»:

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) (чтобы получить «де цену»/старая цена) или grep("<span class=\"p-v interest\">",productwebpage) (который даст вам «СЭМ jouros «оплата за месяц/месяц». В последнем примере вы получите месяцев первого платежа и после того, как так будет:

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

Это следует надеяться, работать для других продуктов, а также (только попробовал 5 и, казалось, работали для всех из них).

+0

Это работает! Большое спасибо. :) Я очень рад. – Djongs

+0

@ user2080573 Если вы думаете, что я ответил на ваши вопросы, вы могли бы выбрать свой пост в качестве ответа, чтобы было ясно, что на эту тему ответили. – nadizan