无法使用RSelenium从网站获取信息

问题描述 投票:0回答:1

我想使用 RSelenium 抓取网页以检查某个文本是否存在。

我需要点击

Staatsangehörigkeitsangelegenheiten
,然后点击
02. Antrag Einbürgerung
[抱歉,该网站是德语的]。

我尝试了以下方法:

require(RSelenium)
URL <- "https://halle.de/serviceportal/online-terminvergabe/online-terminvereinbarung-einbuergerungsbehoerde-standesamt"

rD <- rsDriver(browser="firefox", port=4545L, verbose=F)
remDr$navigate(URL)

# this works to get the page title
ReadyDown2 <- remDr$getTitle()

# none of the follwing work
xpath0 <- '//*[@id="category_ceb42d82-215c-4565-80f1-e2af5e77859c"]'
idd <- 'category_ceb42d82-215c-4565-80f1-e2af5e77859c'
DownLink <- remDr$findElement(using = "xpath", xpath0)
DownLink <- remDr$findElement(using = "id", "Datenschutz")

我实际上想要得到的是在单击两个链接后查找以下文本是否存在

Keine freien Termine gefunden.

注意:在 Firefox 上单击链接后,该网站没有按预期工作。

是否可以在 Windows 中使用

RSelenium
rvest
来实现此功能?

谢谢

r selenium-webdriver web-scraping rvest rselenium
1个回答
0
投票

有一个

<iframe>
指向另一个网址:

<iframe class="showmobile" border="0" src="https://itc-halle.saas.smartcjm.com/m/standesamt/extern/calendar/?uid=9da900ff-e9a5-46be-a622-ecdfa078121c" name="Standesamt Onlinetermin - iFrame" width="100%" height="1000" frameborder="0" aria-label="Standesamt Onlinetermin"> 

在这个上,你会找到你的 xpath:

# Consider `selenider` instead of `RSelenium`
library(selenider)

aux <- open_url("https://itc-halle.saas.smartcjm.com/m/standesamt/extern/calendar/?uid=9da900ff-e9a5-46be-a622-ecdfa078121c")

find_element(aux, xpath = '//*[@id="category_ceb42d82-215c-4565-80f1-e2af5e77859c"]')

它给出:

{ selenider_element }
<div class="title" id="category_ceb42d82-215c-4565-80f1-e2af5e77859c" onclick="switchAccordion('ceb42d82-215c-4565-80f1-e2af5e77859c');">
  \n\t\t\t\t\t\t\t\t\t\t<i class="dropdown icon"></i>Staatsangehörigkeitsangelegenheiten
</div>

网站: enter image description here

如果您认为您可能想要的只是一次(或几次)点击,请点击

id="category_content_ceb42d82-215c-4565-80f1-e2af5e77859c"

看看

selenider::elem_scroll_to
elem_click

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.