【问题标题】:Rselenium xpath not able to save responseRselenium xpath 无法保存响应
【发布时间】:2018-04-15 16:39:52
【问题描述】:

我正在尝试从https://www.vinmonopolet.no/ 获取股票 比如这款酒https://www.vinmonopolet.no/vmp/Land/Chile/Gato-Negro-Cabernet-Sauvignon-2017/p/295301

使用 Rselenium

library('RSelenium')
    rD=rsDriver()
    remDr =rD[["client"]]
    remDr$navigate("https://www.vinmonopolet.no/vmp/Land/Chile/Gato-Negro-Cabernet-Sauvignon-2017/p/295301")
    webElement = remDr$findElement('xpath', '//*[@id="product_2953010"]/span[2]')
    webElement$clickElement()

它将呈现Response

但是如何存储呢? Full XML

【问题讨论】:

    标签: r xml curl rselenium


    【解决方案1】:

    也许rvest 是你要找的?

    library(rvest, tidyverse)
    
    url <- "https://www.vinmonopolet.no/vmp/Land/Chile/Gato-Negro-Cabernet-Sauvignon-2017/p/295301"
    
    page <- read_html(url)
    stock <- page %>%
      html_nodes(".product-stock-status div") %>% 
      html_text()
    
    stock.df <- data.frame(url,stock)
    

    要提取数字使用

    stock.df <- stock.df %>% 
      mutate(stock=as.numeric(gsub(".*?([0-9]+).*", "\\1", stock)))
    

    【讨论】:

    • 谢谢!但这只会读取 HTML 端。只有当您单击“Finn butikk med varen på lager”时才会触发: ('xpath', '//*[@id="product_2953010"]/span[2]') 并且它会发送一个查询到服务器。您收到如前所示的响应,但如何阅读它?
    • @user3460688 嗯,不知道我明白你的意思。我提供的代码为您提供了一个数据框,其中包括 a) 葡萄酒的链接,以及 b) 库存瓶数。
    • 您的代码为我提供了可用库存“Post/På dør: 36 på lager”(36 瓶),其中总量(在响应 XML 中为 9815 瓶)
    • 如果我只想知道通过邮寄“Post/På dør: 36 på lager”(36 瓶)提供的库存,您的代码是正确的,如果您想知道所有库存中的全部库存在挪威的商店你需要做一个“点击”(webElement),然后你会得到一个包含商店股票的 XML。
    【解决方案2】:

    只需发送正确的普通请求即可工作,无需 R

    https://www.vinmonopolet.no/vmp/store-pickup/1101/pointOfServices?locationQuery=0661&cartPage=false&entryNumber=0&CSRFToken=718228c1-1dc1-41cd-a35e-23197bed7b0c
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 2016-01-28
      相关资源
      最近更新 更多