我正在尝试在一个受欢迎的瑞士网站上编写一个R脚本来检查价格。
以下方法进行了说明:https://www.analyticsvidhya.com/blog/2017/03/beginners-guide-on-web-scraping-in-r-using-rvest-with-hands-on-knowledge/为此,我尝试使用rvest
:
library(rvest)
url <- "https://www.galaxus.ch/fr/s8/product/quiksilver-everyday-stretch-l-shorts-de-bain-10246344"
webpage <- read_html(url)
不幸的是,我对html / css的了解有限,webpage
的内容对我来说还是很晦涩。
我尝试用google chrome浏览页面,价格似乎位于名为priceEnergyWrapper--2ZNIJ
的地方,但是在webpage
中找不到任何痕迹。使用SelectorGadget我没有更多的运气
有人可以帮我从webpage
中获取价格吗?
答案 0 :(得分:1)
由于它是动态生成的,因此您将需要RSelenium。
您的代码应类似于:
library(RSelenium)
driver <- rsDriver(browser=c("chrome"))
rem_driver <- driver[["client"]]
rem_driver$open()
rem_driver$navigate("https://www.galaxus.ch/fr/s8/product/quiksilver-everyday-stretch-l-shorts-de-bain-10246344")
这将要求Selenium在加载整个页面后打开此页面,因此,通过单击“页面源”看到的所有HTML应该都可用。
现在做:
rem_driver$findElement(using = 'class', value = 'priceEnergyWrapper--2ZNIJ')
您现在应该看到必要的HTML,以便从中获取价格,在检查网站时,价格为25瑞士法郎。
PS: 我不会为他人抓取网站,除非我确定网站所有者不会反对爬虫/抓取工具/机器人。因此,我的代码基于如何处理硒的思想。我没有亲自测试过它们。但是,您应该或多或少了解使用Selenium之类的工具的总体思路和原因。 您还应该了解是否允许您在不久的将来合法地刮擦该网站和其他网站。