【问题标题】:Scraping website with rvest ask geografical location用 rvest 抓取网站询问地理位置
【发布时间】:2021-02-04 22:03:18
【问题描述】:

我开始从阿根廷抓取一些网站。我想抓取这个特定的网站:“https://www.disco.com.ar/prod/88953/aderezo-mayonesa-natura-237-gr”或“https://www.disco.com.ar/prod /416680/cerveza-rubia-brahma-chopp-1-l-botella-retornable"

我使用“rvest”包来复制其他网站的价格和名称。我正在尝试使用下一个代码获取 URL:

 library (rvest)
    url_1 <- "https://www.disco.com.ar/prod/88953/aderezo-mayonesa-natura-237-gr"
    page <- read_html (url_1)

我想用价格和这些特定产品的名称草稿整个页面。我的问题是 rvest 仅在有人单击 chrome 中出现的位置问题之前使用第一个窗口。一旦你点击“允许”或“不允许”,chrome 让我访问所有的 html 信息。我附上了参考照片,我想访问产品,我只能访问带有徽标的第一个窗口。

如何通过 get_html 访问信息?我必须用beautifulsoup之类的吗?

我们非常欢迎任何帮助,我感谢整个社区。​​p>

【问题讨论】:

  • 您需要向disco.com.ar/Comprar/HomeService.aspx/… 发送一个POST 请求,其中code 参数设置为88953。这失败了,因为它不接受cors。但是我认为 selenium 可以绕过这个,因为它执行 javascript。那里有一个 rselinium 包。

标签: r web-scraping


【解决方案1】:

您需要致电:

POST /Geolocalizacion/Geolocalizacion.aspx/GuardarLocalizacion 

并将 cookie 保存到您的 html_session。产品信息位于 input 标记中的 JSON 中,value 属性下的名称为 hfProductData

library(rvest)
library(httr)
library(jsonlite)

r <- POST("https://www.disco.com.ar/Geolocalizacion/Geolocalizacion.aspx/GuardarLocalizacion", 
    content_type("application/json"),
    body = toJSON(
        list(
            latitud = NA,
            longitud = NA,
            noLocalizar = TRUE
        ), auto_unbox = TRUE
    ),encode = "json")

cookieList <- cookies(r) 
cookies <- cookieList$value %>% setNames(cookieList$name) 

url <- "https://www.disco.com.ar/prod/88953/aderezo-mayonesa-natura-237-gr"

resp <- html_session(url, set_cookies(cookies)) %>% 
    html_nodes('input[name="hfProductData"]') %>%
    html_attr("value")

print(fromJSON(resp))

输出:

$DescripcionArticulo
[1] "Aderezo Mayonesa Natura 237 Gr"
$Grupo_Marca
[1] "NATURA"
$IdArchivoZoom
[1] ""
$IdArchivoBig
[1] "444812.jpg"
$IdArchivoSmall
[1] "444664.jpg"
$IdArticulo
[1] 88953
$Precio
[1] "49.52"
$unidadPedida
[1] "Un"
$Pesable
[1] "False"
$Stock
[1] "84.00"
$CucardaOferta
[1] ""
$Descuentos
list()
$ImgMxM
[1] "11510117005.jpg"
$Codigo
[1] "11510117005"
$Categoria
[1] "Almacén->Aderezos->Mayonesas"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2017-09-11
    • 2020-01-30
    • 2017-03-22
    • 1970-01-01
    • 2015-08-23
    • 2021-01-31
    相关资源
    最近更新 更多