好吧,我试着从这个网站上用狗的脾气来擦table:https://atts.org/breed-statistics/statistics-page1/
但是,该表总共跨越8个页面(因此有8个唯一的URL)
目前,对于表的第1页,我已经编写了以下代码:
url <- "https://atts.org/breed-statistics/statistics-page1/"
webpage <- read_html(url)
bn_data_html <- html_nodes(webpage, "td:nth-child(1)")
bn_data <- html_text(bn_data_html)
nt_data_html <- html_nodes(webpage, "td:nth-child(2)")
nt_data <- html_text(nt_data_html)
passed_data_html <- html_nodes(webpage, "td:nth-child(3)")
passed_data <- html_text(passed_data_html)
failed_data_html <- html_nodes(webpage, "td:nth-child(4)")
failed_data <- html_text(failed_data_html)
percent_data_html <- html_nodes(webpage, "td:nth-child(5)")
percent_data <- html_text(percent_data_html)
breeds <- data.frame(Breed = bn_data, Number_tested = nt_data, Passed = passed_data, Failed = failed_data, Percent = percent_data)
它非常适合从第一页抓取数据。但是,为了抓取整个表,我能想到的唯一方法是替换原始url,并为表的每个页面重新运行代码块八次。有没有一种方法可以做到这一点,而不必重新运行八次?假设表跨越100个页面,并重新运行代码,许多次只是"可行吗?
1条答案
按热度按时间mnemlml81#
这就是你如何把狗放入 Dataframe ,抓取
1:8
页。注意html_table()
的用法。