使用R-Selenium的动态站点
我正试图从SEC Edgar数据库中搜集一些财务报告: 由于它是动态的,我在Firefox上使用R Selenium,现在我有点卡住了。Firefox已打开,我已导航到正确的页面 我追求的是总资产使用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
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)
,您将看到它(毫不奇怪)是classwebElement
的对象。这是一个特殊的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')"