r语言使用函数:grep和regexpr与substr,尝试爬取豆瓣电影 Top 250,网址:https://movie.douban.com/top250?start=1&filter=,抓取目标: 导演与主演
时间: 2024-06-08 08:10:50 浏览: 162
unix的grep命令
首先,需要用到rvest包来进行网页爬取,可以使用以下代码进行安装:
```R
install.packages("rvest")
library(rvest)
```
然后,我们需要获取豆瓣电影 Top 250 网页的HTML内容,可以使用以下代码:
```R
url <- "https://movie.douban.com/top250?start=1&filter="
webpage <- read_html(url)
```
接着,我们需要使用`html_nodes()`函数来获取网页中的节点信息,并使用`html_text()`函数来获取节点中的文本信息。我们可以先使用`html_nodes()`函数获取所有的电影条目,然后再使用`html_text()`函数获取导演与主演信息。
```R
# 获取电影条目
movies <- webpage %>% html_nodes(".grid_view .item")
# 循环遍历每一个电影条目
for (movie in movies) {
# 获取导演信息
directors <- movie %>% html_nodes(".bd p:nth-child(1)") %>% html_text()
directors <- gsub("导演: ", "", directors)
# 获取主演信息
actors <- movie %>% html_nodes(".bd p:nth-child(2)") %>% html_text()
actors <- substr(actors, 4, nchar(actors))
actors <- gsub(" / ", ", ", actors)
# 输出导演与主演信息
cat("导演:", directors, "\n")
cat("主演:", actors, "\n\n")
}
```
在上面的代码中,我们使用了`html_nodes()`函数获取所有的电影条目,然后循环遍历每一个电影条目。在每一个电影条目中,我们使用`html_nodes()`函数分别获取导演信息和主演信息,并使用`html_text()`函数获取节点中的文本信息。对于导演信息,我们使用`gsub()`函数将"导演: "替换为空字符串;对于主演信息,我们使用`substr()`函数截取从第四个字符开始到字符串结尾的部分,并使用`gsub()`函数将" / "替换为逗号。最后,我们使用`cat()`函数输出导演与主演信息。
阅读全文