RSelenium 消失 Link / 覆盖页面
RSelenium Disappearing Link / Overlay Pages
希望我能为大家解决一个有趣的问题。我正在尝试获取有关德语 Abgeordnete(基本上是 representatives/delegates)的信息,他们有一个非常好的网页,不幸的是,互动性太强,无法使用 rvest
.所以我认为是时候尝试 RSelenium
.
以下代码在远程浏览器中获取主页:
rD <- rsDriver(browser="firefox", port=4546L, verbose=F)
remDr <- rD[["client"]]
remDr$navigate('https://www.bundestag.de/abgeordnete')
这是它的样子:
我能够通过以下代码获得下一页箭头和 select 12 个人:=
next_el <- remDr$findElement('xpath',
'//*[contains(concat( " ", @class, " " ), concat( " ", "slick-next", " " ))]')
people_el <- remDr$findElements(using = 'xpath',
'//*[(@id = "modul-biografien")]//h3')
但随后一切都分崩离析。单击任何给定的人都会打开这个我 select 或非常讨厌的叠加页面。
在寻找解决方法时,我注意到如果我将鼠标拖到 Abgeordnete 的名称上(在上图的那个页面上),我会得到一个干净的 link 到该代表的独立页面。但是这些信息似乎不存在于 RSelenium 可以访问的任何内容中。
有什么建议吗?随意提出任何离开领域的建议。
您应该能够通过 css class selectors 与后代组合器
的组合来匹配您在鼠标悬停时看到的那些链接
.bt-slide-content .bt-open-in-overlay
然后从返回的 nodeList 中提取 href 属性。
语法,从 this and this 来看应该是这样的
webElems <- remDr$findElements(using = "css selector", ".bt-slide-content .bt-open-in-overlay")
links <- unlist(lapply(webElems, function(x) {x$getElementAttribute('href')}))
希望我能为大家解决一个有趣的问题。我正在尝试获取有关德语 Abgeordnete(基本上是 representatives/delegates)的信息,他们有一个非常好的网页,不幸的是,互动性太强,无法使用 rvest
.所以我认为是时候尝试 RSelenium
.
以下代码在远程浏览器中获取主页:
rD <- rsDriver(browser="firefox", port=4546L, verbose=F)
remDr <- rD[["client"]]
remDr$navigate('https://www.bundestag.de/abgeordnete')
这是它的样子:
我能够通过以下代码获得下一页箭头和 select 12 个人:=
next_el <- remDr$findElement('xpath',
'//*[contains(concat( " ", @class, " " ), concat( " ", "slick-next", " " ))]')
people_el <- remDr$findElements(using = 'xpath',
'//*[(@id = "modul-biografien")]//h3')
但随后一切都分崩离析。单击任何给定的人都会打开这个我 select 或非常讨厌的叠加页面。
在寻找解决方法时,我注意到如果我将鼠标拖到 Abgeordnete 的名称上(在上图的那个页面上),我会得到一个干净的 link 到该代表的独立页面。但是这些信息似乎不存在于 RSelenium 可以访问的任何内容中。
有什么建议吗?随意提出任何离开领域的建议。
您应该能够通过 css class selectors 与后代组合器
的组合来匹配您在鼠标悬停时看到的那些链接.bt-slide-content .bt-open-in-overlay
然后从返回的 nodeList 中提取 href 属性。
语法,从 this and this 来看应该是这样的
webElems <- remDr$findElements(using = "css selector", ".bt-slide-content .bt-open-in-overlay")
links <- unlist(lapply(webElems, function(x) {x$getElementAttribute('href')}))