gpt4 book ai didi

r - 为什么 rvest 看不到表格

转载 作者:行者123 更新时间:2023-12-02 03:09:32 26 4
gpt4 key购买 nike

我在尝试从某些页面抓取表格内容时遇到问题。此代码显示 5 个表

page <- read_html('https://wybory.gov.pl/sejmsenat2019/pl/kandydaci/sejm/1')
page %>% html_nodes('table')

指定更多内容时

page %>%
html_nodes('div.con_can')
html_nodes('table')

它落到一张 table 上,虽然我可以看到至少有 8 个 table ,全部包装在 div.table-responsive 中,但是当尝试列出它们时

page %>%
html_nodes('div.table-responsive')
html_nodes('table') %>%

我仍然收到一张返回的表 ({xml_nodeset (1)}),但它不是我感兴趣的任何可见表。

所以问题是:如何获取此页面上列出的所有包含候选人姓名/职业和隶属关系的表格,和/或如何抓取它们。

最佳答案

我无法回答为什么 rvest 无法下载表格的问题,但使用 RSelenium 包,以下内容应该可以工作,但需要扩展,下载所有表格。我将使用循环来动态调整表的数量并下载它,但这应该可以帮助您开始。请确保编码正确。

library(rvest)
library(data.table)
library(httr)
library(XML)
library(RSelenium)
library(dplyr)
mybrowser <- rsDriver(browser = 'firefox')

link <- "https://wybory.gov.pl/sejmsenat2019/pl/kandydaci/sejm/1"
mybrowser$client$navigate(link)

mybrowser$client$findElement(using = 'css selector', "#DataTables_Table_0")$getElementText()

html.table.0 <- mybrowser$client$findElement(using = 'css selector', "#DataTables_Table_0")
html.table.1 <- mybrowser$client$findElement(using = 'css selector', "#DataTables_Table_1")
html.table.2 <- mybrowser$client$findElement(using = 'css selector', "#DataTables_Table_2")

webElem5txt.0 <- html.table.0$getElementAttribute("outerHTML")[[1]]
webElem5txt.1 <- html.table.1$getElementAttribute("outerHTML")[[1]]
webElem5txt.2 <- html.table.2$getElementAttribute("outerHTML")[[1]]
df.table.0 <- read_html(webElem5txt.0) %>% html_table() %>% data.frame(.)
df.table.1 <- read_html(webElem5txt.1) %>% html_table() %>% data.frame(.)
df.table.2 <- read_html(webElem5txt.2) %>% html_table() %>% data.frame(.)

mybrowser$server$stop()

关于r - 为什么 rvest 看不到表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58061486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com