生活随笔
收集整理的這篇文章主要介紹了
R语言爬虫 电影票房-艺恩网
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、爬取目的:
爬取數據用于論文-大數據背景下我國電影票房預測研究
數據來源:http://www.cbooo.cn/
二、思路解析:
爬取首頁 電影名稱+ID拼接 http://www.cbooo.cn/m/ + ID 獲取電影詳情頁
library(tidyverse)
library(httr)
library(jsonlite)
library(rlist)
library(plyr)
##tidyverse:包含R語言常用的8個包,合集
##httr:相當于py的Request庫,
#獲取總覽頁
yien_data <- data.frame()
for (i in 1:395){url <- paste('http://www.cbooo.cn/Mdata/getMdata_movie?area=50&type=0&year=0&initial=%E5%85%A8%E9%83%A8&pIndex=',i,seq='')Sys.sleep(0.5) response <- GET(url, user_agent="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36")result <- fromJSON(content(response,as="text"))yien_data1 <- as.data.frame(result[[1]])#合并不等長的數據框rbind.fill()yien_data <- rbind.fill(yien_data,yien_data1)print(paste('已完成',i,seq=' '))
}
#獲取詳情頁
details_data <- data.frame()
for (i in 1:nrow(yien_data)){movieID<- yien_data[i,2]details_url <- paste('http://www.cbooo.cn/m/',movieID,sep = '')Sys.sleep(0.2)session = details_url %>% html_session(add_headers(`User-Agent`="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"))movie_list <- session %>% html_nodes('#top > div:nth-child(3) > div.mainbox.fr > div > div.ziliaoku > div.ziliaofr > div.cont > p') %>% html_text()movie_list <- gsub('\r\n','',movie_list)movie_list <- gsub(' ','',movie_list)movie_df <- as.data.frame(str_split_fixed(movie_list, ":", 2))for (j in 1:nrow(movie_df)){if (j==1){details_data[i,j] <- as.character(movie_df[j,1])}else if(j==2){details_data[i,j] <- as.character(movie_df[j,1])}else if(movie_df[j,1] == '類型'){details_data[i,3] <- as.character(movie_df[j,2])}else if(movie_df[j,1] == '片長'){details_data[i,4] <- as.character(movie_df[j,2])}else if(movie_df[j,1] == '上映時間'){details_data[i,5] <- as.character(movie_df[j,2])}else if(movie_df[j,1] == '制式'){details_data[i,6] <- as.character(movie_df[j,2])}else if(movie_df[j,1] == '國家及地區'){details_data[i,7] <- as.character(movie_df[j,2])}else if(movie_df[j,1] == '發行公司'){details_data[i,8] <- as.character(movie_df[j,2])}else{details_data[i,9] <- as.character(movie_df[j,2])}}}yien_newfile <- cbind(yien_data,details_data)
最終數據形式如下:
總結
以上是生活随笔為你收集整理的R语言爬虫 电影票房-艺恩网的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。