R语言爬取IMDB时如何向已生成URL中间插入/fullcredits字符串
解决R语言rvest爬取IMDB演职人员页面的URL拼接问题
你只需要对现有URL做正则匹配替换即可,有两种常用实现方式:
方式1:爬取href属性时直接拼接目标路径(推荐)
修改movie_link构造代码,直接在拼接时插入/fullcredits字段:
movie_link = page %>% rvest::html_nodes(".lister-item-header a") %>% rvest::html_attr("href") %>% # 用正则替换在ref参数前插入fullcredits路径 gsub(pattern = "\\/?ref_", replacement = "/fullcredits/?ref_", x = .) %>% paste0("https://www.imdb.com", .)
方式2:已生成原始影片URL后批量修改
如果已经生成了原始的概要页URL,可以直接批量替换:
# 原始movie_link为概要页URL时执行以下代码 movie_link <- gsub( pattern = "(https://www.imdb.com/title/[^/]+)/", replacement = "\\1/fullcredits/", x = movie_link )
说明:两种方式都不需要修改URL自带的ref参数,IMDB对该参数容错性很高,不影响fullcredits页面正常访问。爬取时建议添加1-2秒的请求间隔,避免触发反爬限制。
内容的提问来源于stack exchange,提问作者JustBeginning
相关产品推荐
相关产品推荐

