豆瓣电影Top250的R语言爬虫代码
时间: 2023-07-10 07:16:18 浏览: 111
python-crawler-douban:豆瓣综合爬虫,使用 `Python-3.7 + Scrapy-1.5` 构建,含豆瓣电影、豆瓣读书、豆瓣音乐三类Top250内容爬取及短评爬取
好的,以下是豆瓣电影Top250的R语言爬虫代码,需要使用到rvest和httr这两个包:
```
# 安装需要的R包
install.packages("rvest")
install.packages("httr")
library(rvest)
library(httr)
# 定义一个函数,用于获取电影页面的HTML代码
get_movie_html <- function(start) {
url <- paste0("https://movie.douban.com/top250?start=", start)
html <- GET(url, user_agent("Mozilla/5.0"))
content(html, "text")
}
# 定义一个函数,用于从电影页面的HTML代码中提取电影信息
get_movie_info <- function(html) {
movie_list <- read_html(html) %>%
html_nodes(".grid_view .item")
movie_info <- lapply(movie_list, function(movie) {
title <- movie %>% html_nodes(".title") %>% html_text()
rating_num <- movie %>% html_nodes(".rating_num") %>% html_text()
quote <- movie %>% html_nodes(".inq") %>% html_text()
list(title = title, rating_num = rating_num, quote = quote)
})
movie_info <- do.call(rbind, movie_info)
movie_info
}
# 爬取前250部电影的信息
movie_info <- lapply(seq(0, 225, 25), function(start) {
html <- get_movie_html(start)
movie_info <- get_movie_info(html)
Sys.sleep(2)
movie_info
})
movie_info <- do.call(rbind, movie_info)
```
上述代码中,我们首先定义了两个函数:`get_movie_html()`用于获取电影页面的HTML代码,`get_movie_info()`用于从HTML代码中提取电影信息。然后使用`lapply()`函数遍历前10页电影页面的URL,获取电影信息,并将结果保存在一个列表中。最后将所有结果合并为一个数据框。
需要注意的是,在爬取电影页面时,我们需要加上`user_agent("Mozilla/5.0")`这个参数,以模拟浏览器访问,否则可能会被豆瓣网站拒绝访问。
此外,为了避免被反爬虫机制识别,我们在每次请求之后加上了`Sys.sleep(2)`函数,表示每次请求后暂停2秒钟,以减缓访问速度。
阅读全文