【问题标题】:how to find <a href> element in a webpage using Rselenium?如何使用 Rselenium 在网页中查找 <a href> 元素?
【发布时间】:2015-04-24 18:33:45
【问题描述】:

我在网页中有以下标签:

<a target="PARENT" href="/bin-din/WebOb/mom.ko/6/wo/asaksdaksjd
/5.1.5.5.33.23.23">View Data Set</a>

如何在 Rselenium 中查找此元素?例如,如果我当前的会话保存在 remDr 中,我应该搜索什么:

webElem <- remDr$findElement(??)

我需要使用它的显示链接(查看数据集)搜索元素,因为 href 链接会随着时间而变化。 非常感谢您的帮助

【问题讨论】:

  • 您查看过 XML 库吗?它具有广泛的功能来解析和搜索网页的节点。我特别建议查看 XML 库中的 xpath 函数。
  • @miles2know 非常感谢,我已经尝试了其中的一些,但没有成功。不过还是谢谢

标签: r rselenium


【解决方案1】:

试试

library(XML)
fileUrl <- ("http:\\wherever you got your file")
doc <- htmlTreeParse(fileUrl, useInternal=T)
xpathSApply(doc, "//a[@href]", xmlGetAttr, "href")

演示:

fileUrl <- "http://kimkardashianonline.org/"
doc <- htmlTreeParse(fileUrl, useInternal=T)
xpathSApply(doc, "//a[@href]", xmlGetAttr, "href")
[1] "http://kimkardashianonline.org/?page_id=2"                                        
[2] "http://www.kimkardashianonline.org/gallery/"                                      
[3] "http://www.kimkardashianonline.org/icons/"                                        
[4] "http://#"                                                                         
[5] "http://kimkardashianonline.org/?page_id=42"   

【讨论】:

【解决方案2】:

在@plafort 的回答中,除非您提前知道要将 href 属性值设置为什么,否则不需要 [@href]。因此,这是一个通用的前进方向。这适用于这个 url 请求。显然 '_blank' 不是你想要的。


    library(XML)
    library(RCurl)
    gSite <- getURL("http://www.sitepoint.com/web-foundations/target-html-attribute/") 
    sParse <- htmlParse(gSite)
    xpathSApply(sParse, "//a[@target='_blank']", xmlGetAttr, "href") 

【讨论】:

【解决方案3】:

您可以使用:webElem$getElementAttribute("href")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多