html - 使用 Selenium 从 HTML 获取信息
问题描述
我正在尝试使用 R 从亚马逊网站中提取一些文本。可能是因为亚马逊使用了 ajax 技术,所以无法直接使用 xml_attrs() 提取数据。
library(rvest)
library(RSelenium)
Produktlink<-'https://www.amazon.de/AmazonBasics-CW190423-Mikrofaser-Reinigungst%C3%BCcher-24-St%C3%BCck/dp/B009FUF6DM/ref=zg_bs_automotive_10/262-2805299-5636062?_encoding=UTF8&psc=1&refRID=TK56QZCA9CH997338J1B'
Name<-xml_attrs(xml_child(xml_child(xml_child(xml_child(xml_child(xml_child(xml_child(xml_child(xml_child(xml_child(read_html(pageSource), 2), 1), 46), 8), 8), 3), 1), 1), 1), 1))[["class"]]
这就是为什么我认为我需要 Docker 和 Selenium:
remDr <- RSelenium::remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
remDr$open(silent = T)
remDr$navigate(Produktlink)
但我无法找到例如产品名称搜索:
webElem <- remDr$findElement(using = "class", "a-size-large")
webElem$getElementAttribute("name")
谁能帮助我,或者有人知道从网站中提取文本的其他方法吗?
此致
解决方案
我认为您不需要 RSelenium。我发现产品标题如下:
library(rvest)
library(xml2)
library(stringr)
Produktlink <- 'https://www.amazon.de/AmazonBasics-CW190423-Mikrofaser-Reinigungst%C3%BCcher-24-St%C3%BCck/dp/B009FUF6DM/ref=zg_bs_automotive_10/262-2805299-5636062?_encoding=UTF8&psc=1&refRID=TK56QZCA9CH997338J1B'
html <- read_html(Produktlink)
html %>%
xml2::xml_find_all("//span[@id = 'productTitle']") %>%
xml_text %>%
str_replace_all('\n','') %>%
trimws()
结果:
[1] "AmazonBasics Mikrofaser-Reinigungstücher, 24 Stück"
推荐阅读
- mysql - 行间时间差
- angular - 这个名称属性和路由器出口标签中的#varName是什么意思?
- python - 检查网络驱动器是否在python中连接?
- android - 如何确定安卓设备是否有缺口和软键?
- git - 如何解决来自 Tortoise Git 的此错误消息?
- python - Python defaultdict 在创建时初始化
- java - 了解“请求标头太大”
- sql - 如何使用 Netezza 计算连续日期
- reactjs - 表单数据使用邮递员工作,但不适用于反应、发布方法、Springboot
- python - 如何使用 django SlugField 和 slugify?以及如何正确使用它?