【发布时间】:2017-03-28 14:40:25
【问题描述】:
我有一个网站,我想从中抓取数据,但有 8 页的数据。我已经使用以下方法获取了第一页数据
library(rvest)
library(stringr)
library(tidyr)
site <- 'http://www.basketball-reference.com/play-index/draft_finder.cgi?request=1&year_min=2001&year_max=2014&college_id=0&pos_is_g=Y&pos_is_gf=Y&pos_is_f=Y&pos_is_fg=Y&pos_is_fc=Y&pos_is_c=Y&pos_is_cf=Y&order_by=year_id'
webpage <- read_html(site)
draft_table <- html_nodes(webpage, 'table')
draft <- html_table(draft_table)[[1]]
head(draft)
draft <- draft[-1,]
names(draft) <- c("rank", "year", "league", "round", "pick", "team", "player", "age", "position", "birth", "college",
"yearin", "lastyear", "car.gp", "car.mp", "car.ppg", "car.rebpg", "car.apg", "car.stlpg", "car.blkpg",
"car.fgp", "car.2pfgp", "car.3pfgp", "car.ftp", "car.ws", "car.ws48")
draft <- draft[draft$player != "" & draft$player != "Player", ]
看起来url是按顺序移动的,第一页的偏移量=0,第二页的偏移量=100,第三页的偏移量=200,依此类推。
我的问题是,如果不手动将 url 粘贴到上面的“站点”向量中,我无法找到一种直接抓取所有 8 个页面的方法。我希望能够普遍做到这一点,所以如果存在一个很好的通用 rvest 解决方案。否则,任何帮助或建议将不胜感激。非常感谢。
【问题讨论】:
标签: r url dataframe web-scraping rvest