Css 为“查找正确的xpath”;“下一步”;谷歌搜索上的按钮
我使用的是R,但似乎无法为“下一步”提取正确的Css 为“查找正确的xpath”;“下一步”;谷歌搜索上的按钮,css,r,xpath,Css,R,Xpath,我使用的是R,但似乎无法为“下一步”提取正确的xpath 谷歌搜索上的按钮。例如,一个人搜索某物,滚动到底部,然后单击数字列表右侧的“下一步” 这是我可以从Chrome的“inspect”中提取的内容: 但是当我尝试使用xpath时,得到一个空白列表。CSS选择器小工具为我提供了以下信息: //*+[contains(concat( " ", @class, " " ), concat( " ", "ch", " " ))]//span 但同样的问题。要在R代码或“可点击”中有用,我知道它来自
xpath
谷歌搜索上的按钮。例如,一个人搜索某物,滚动到底部,然后单击数字列表右侧的“下一步”
这是我可以从Chrome的“inspect”中提取的内容:
但是当我尝试使用xpath
时,得到一个空白列表。CSS选择器小工具为我提供了以下信息:
//*+[contains(concat( " ", @class, " " ), concat( " ", "ch", " " ))]//span
但同样的问题。要在R代码或“可点击”中有用,我知道它来自href
部分。单击“下一步”按钮的正确路径是什么
代码引导:
library(RSelenium) # run in docker
remDr <- remoteDriver(port = 4445L, browserName = "chrome")
remDr$open()
remDr$navigate("https://books.google.com/")
books <- remDr$findElement(using = "css", "[name = 'q']")
books$sendKeysToElement(list("NHL books", key = "enter"))
# Clicks on all 10 links of first result page
bookElem <- remDr$findElements(using = "xpath",
"//h3[@class = 'LC20lb']//parent::a")
links <- sapply(bookElem, function(bookElem){
bookElem$getElementAttribute("href")
})
# Gets stuff I want from every search result
big_list <- lapply(links, function(link) {
# Navigate to each link
remDr$navigate(link)
# Do various things
if (...) {
...
} else {
...
}
})
library(RSelenium)#在docker中运行
remDr您是否尝试按id查找元素
remDr$findElement(使用=“id”,“pnnext”)
我发现在可能的情况下,通过唯一值查找元素总是更安全的。当您要求使用XPath解决方案时,我会补充这一点
这对我很有用:
nextButton <- remDr$findElement("xpath", "//*[@id = 'pnnext']")
你是如何进行搜索的?您是否使用Selenium输入搜索关键字?在google中搜索某个内容,点击enter,然后想点击next,但为了获得搜索结果,您如何进行搜索?您的代码是什么导致您尝试点击“下一步”按钮的?或者你是在浏览器中搜索,然后试图根据该URL进行抓取,比如我在Firefox中搜索“网页抓取”时遇到的混乱情况:因为我刚刚完成了一个项目,需要搜索页面并进行抓取,我使用RSelenium通过其选择器查找搜索框,输入文本,按enter键,然后进行抓取,使用Firefox调试驱动程序对其进行调试。搜索一个短语,按enter键,从页面上的每个链接中删除一些内容,然后单击“下一步”在此后的每个页面上执行同样的操作。如果这是一个愚蠢的方法,让我知道!(实际上,尽管如此)。我基本上不知道脚本中的“next”元素应该放在哪里,但现在我知道/*[@id=“pnnext”]
将用于命中next,只是不在实际的抓取代码中
nextButton <- remDr$findElement("xpath", "//*[@id = 'pnnext']")
remDr$navigate("https://books.google.com/")
books <- remDr$findElement(using = "css", "[name = 'q']")
books$sendKeysToElement(list("NHL books", key = "enter"))
bookElem <- remDr$findElements(using = "xpath",
"//h3[@class = 'LC20lb']//parent::a")
links <- sapply(bookElem, function(bookElem){
bookElem$getElementAttribute("href")
})
nextButton <- remDr$findElement("xpath", "//*[@id = 'pnnext']")
nextButton$clickElement()
remDr$screenshot(TRUE)
remDr$getCurrentUrl()
"https://www.google.com/searchq=NHL+books&tbm=bks&ei=M9y2XL2HBPDjkgWklqXoDg&start=10&
sa=N&ved=0ahUKEwj97OjL09bhAhXwsaQKHSRLCe0Q8NMDCIUB&biw=1020&bih=694&dpr=1"