【问题标题】:Trying to scrape a table from a URL but not able to scrape the entire rows尝试从 URL 中抓取表格但无法抓取整行
【发布时间】:2018-09-22 13:39:42
【问题描述】:

我正在尝试抓取表号的整行。 8 在以下网址“https://www.screener.in/company/HCLTECH/consolidated/

webpage<-"https://www.screener.in/company/HCLTECH/consolidated/"
Webpage<-read_html(webpage)
CF<- Webpage %>%
html_nodes("table") %>%
 .[8] %>%
html_table(fill = TRUE)

只能获得以下输出,而不是网页上折叠的整个表格行。如何在 html 表格上刮掉折叠的行?

【问题讨论】:

  • 整个表格行是什么意思?当我访问该网站时,我会在现金流量表中看到与您的代码相同的四行。
  • 请点击相应行上的+号展开列。
  • 当您单击+ 符号时,该站点正在使用以/api/ 开头的HTTP 路径的端点进行AJAX/XHR 调用。这些网站的robots.txt明确禁止通过该文件的前两行以自动方式处理这些 URL(这是一种合法的技术控制)。因此,以编程方式访问该端点是对网站 Terms 的违反,并要求其他人帮助您违反这些条款可能会使他们受到伤害。
  • 我不知道违规行为。只是想编译一些东西。感谢您指出。

标签: r html-table rvest


【解决方案1】:

我使用 RSelenium 按这些加号来展开表格。这是我的尝试:

library(rvest)
library(Rselenium)

# initialize RSelenium
selCommand <- wdman::selenium(jvmargs = c("-Dwebdriver.chrome.verboseLogging=true"), retcommand = TRUE)
shell(selCommand, wait = FALSE, minimized = TRUE)
remDr <- remoteDriver(port = 4567L, browserName = "chrome")
Sys.sleep(5)
remDr$open()
Sys.sleep(5)

# define and navigate to url
url <-"https://www.screener.in/company/HCLTECH/consolidated/"
remDr$navigate(url)

# click the plus buttons
plus_buttons <- remDr$findElements(using = 'css selector',"#cash-flow button.show-schedules.button-link")
for (plus_button in plus_buttons) {
  plus_button$clickElement()
}

# print the table
remDr$getPageSource(header = TRUE)[[1]] %>%
  read_html() %>%
  html_node("#cash-flow .data-table") %>%
  html_table()

但是,正如@hrbrmstr 所指出的,请检查网页的条款。检查你是否尊重他们。在我的解决方案中,我选择打印而不是存储,因此我不会从他们的网站“复制”任何内容。

希望对您有所帮助!如果您有任何问题,请告诉我!

【讨论】:

  • 感谢您提供代码,但是,我还是编程新手,还没有使用过 Selenium。我收到错误“java_check() 中的错误:找不到 JAVA 的路径。请检查 JAVA 是否已安装。”
  • 我认为这应该在另一个问题中提出。您的计算机中安装了 Java 吗?运行Sys.which("java"),如果你没有获得Java 的路径,你应该从安装它开始。您也可以尝试安装库rJava
  • @Catool 检查这些链接以获取启动RSelenium 的替代方法:tutorialStackOverflow question
猜你喜欢
  • 2019-04-13
  • 2021-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
相关资源
最近更新 更多