我想使用 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
来实现此功能?
谢谢
有一个
<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>
如果您认为您可能想要的只是一次(或几次)点击,请点击
id="category_content_ceb42d82-215c-4565-80f1-e2af5e77859c"
。
看看
selenider::elem_scroll_to
和elem_click
。
希望有帮助。