使用R-Selenium的动态站点

使用R-Selenium的动态站点,r,selenium-webdriver,web-scraping,rselenium,R,Selenium Webdriver,Web Scraping,Rselenium,我正试图从SEC Edgar数据库中搜集一些财务报告: 由于它是动态的,我在Firefox上使用R Selenium,现在我有点卡住了。Firefox已打开,我已导航到正确的页面 我追求的是总资产 remDr$navigate("https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000001800&type=10-K&dateb=&owner=include&c

我正试图从SEC Edgar数据库中搜集一些财务报告:

由于它是动态的,我在Firefox上使用R Selenium,现在我有点卡住了。Firefox已打开,我已导航到正确的页面

我追求的是总资产

    remDr$navigate("https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000001800&type=10-K&dateb=&owner=include&count=40&search_text=")
    webElem1 <- remDr$findElement(using = 'css selector', value = "#interactiveDataBtn")
    webElem1$sendKeysToElement(list("\uE007"))
    webElem2 <- remDr$findElement(using = 'css selector', value = "#menu_cat3")
    webElem2$sendKeysToElement(list("\uE007"))
    webElem3 <- remDr$findElement(using = 'css selector', value = "#r6 .xbrlviewer")
    webElem3$sendKeysToElement(list("\uE007"))
    webElem4 <- remDr$findElement(using = 'css selector', value = "#idp6852922048 > tbody > tr:nth-child(12) > td:nth-child(2)") %>% html_text() %>% as.numeric()
有什么想法吗?

如果您选中
class(webElem4)
,您将看到它(毫不奇怪)是class
webElement
的对象。这是一个特殊的S4类,定义了自己的方法。您将其传递给
html\u text
,就像它是
html\u节点一样,如
xml2
(或
rvest
中所定义的那样

尽管这两者看起来很相似,但
webElement
表示指向浏览器中活动呈现节点的指针,而不仅仅是要解析的惰性文本字符串。
rvest
xml2
包不知道什么是
webElement
或如何阅读它

幸运的是,他们不需要这样做。
webElement
类有自己的方法从相关元素中提取文本。因此,在您的案例中(使用一个完整的Chrome示例,而不是Firefox):

库(RSelenium)
雷姆德
    Error in UseMethod("xml_text") : 
    no applicable method for 'xml_text' applied to an object of class "c('webElement', 
    'remoteDriver', 'errorHandler', 'envRefClass', '.environment', 'refClass', 'environment', 'refObject')"