我是网络爬虫的新手,正在从事一个测试项目,在该项目中,我试图为该特定团队抓取以下网站上的每个数据表。应该有15个表,但是当我运行代码时,似乎只拉了15个表中的前6个。我该如何获取其余的表?
这是代码:
library(tidyverse)
library(rvest)
library(stringr)
library(lubridate)
library(magrittr)
iowa_stats<- read_html("https://www.sports-reference.com/cbb/schools/iowa/2021.html")
iowa_stats %>% html_table()
编辑:所以我决定对这个问题进行更深入的研究,看看是否可以获得更多的见解。因此,我决定从调用html_table命令(即“总计”表)时未出现的第一个表开始。我执行以下操作以完全按照html的路径操作到表格,以查看是否可以找出问题所在。为此,我使用了以下代码。
iowa_stats %>% html_nodes("body") %>% html_nodes("div#wrap") %>% html_nodes("div#all_totals.table_wrapper")
这是我在得到错误之前所能得到的。下一步,应该有以下内容:div#div_totals.table_container.is_setup表存储在其中,但是如果我将其添加到上面的代码中,则该表不存在。当我键入以下内容时,它也不存在。
iowa_stats %>% html_nodes("body") %>% html_nodes("div#wrap") %>% html_nodes("div#all_totals.table_wrapper") %>% html_nodes("div")
有谁更擅长html / css,为什么会这样呢?
该网页似乎正在将某些表存储为注释。要解决此问题,请阅读并保存网页。删除注释标签,然后正常处理。
library(rvest)
library(dplyr)
iowa_stats<- read_html("https://www.sports-reference.com/cbb/schools/iowa/2021.html")
#Only save and work with the body
body<-html_node(iowa_stats,"body")
write_xml(body, "temp.xml")
#Find and remove comments
lines<-readLines("temp.xml")
lines<-lines[-grep("<!--", lines)]
lines<-lines[-grep("-->", lines)]
writeLines(lines, "temp2.xml")
#Read the file back in and process normally
body<-read_html("temp2.xml")
html_nodes(body, "table") %>% html_table()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句