R网页采集:解决网页分页与网址超链接问题

栏目: R语言 · 发布时间: 5年前

R网页采集:解决网页分页与网址超链接问题

作者: 郑连虎 ,在数学学院取得理学学位的文科生,中国人民大学硕博连读生在读,山东大学管理学学士、理学学士

个人公众号:阿虎定量笔记

全文注释

# 本期以爬取猫眼电影为例,演示在R语言网页爬虫实践中, 分页网址与网址链接 的处理。

# 初次使用R语言做网页爬虫任务,请阅读我的另外两篇推送: “rvest包爬虫入门”“R语言正则表达式” ,了解HTML标记语言、CSS层叠样式表、JavaScript脚本语言及正则表达式等背景知识,同时先练习使用R语言爬取豆瓣电影。

# 我们将借助谷歌浏览器插件 SelectorGadget 帮我们提取字段的标签属性。你可以在谷歌浏览器中免费获取该插件,其使用方法十分简单:打开网页,点击SelectorGadget,点选你需要的内容(标黄)并点掉不需要的内容(标红),那么需要提取的字段,其标签属性就自动显示供你复制到代码中,这比浏览网页源代码的方法高效许多;例如,借助SelectorGadget提取电影上映时间字段的标签属性:

R网页采集:解决网页分页与网址超链接问题

# 完整代码的R文件,我在留言区给出下载地址。

任务

1 爬取猫眼电影网站上电影的上映时间

2 保存数据在本地

难点

1 分页形式,需要写循环语句批量爬取

R网页采集:解决网页分页与网址超链接问题

2 上映时间需要点开网页链接才能看到,且包含汉语字符

R网页采集:解决网页分页与网址超链接问题

代码

1 第一步,观察分页的网址规律,获取网址链接:

R网页采集:解决网页分页与网址超链接问题

# 设置工作目录

setwd('D:/')

# 加载所需程序包

library('rvest')

library('stringr')

# 观察网址规律用for循环语句批量爬取数据

index <- c(0,30,60,90,120,150,180,210,240,270)

URL <- data.frame()

for (i in 1:length(index)){

   web <- read_html(str_c(' http://maoyan.com/films?showType=2&offset= ',index[i]))

# 爬取超链接网址

link <- web%>%html_nodes('.movie-item-title a')%>%html_attrs()

url <- c(1:length(link))

for(i in 1:length(link))

url[i]<-link[[i]][1]

# 创建数据框存储以上信息

URL_data <- data.frame(url)

URL <- rbind(URL,URL_data)

}

URL

2 第二步,爬取信息并清洗保存:

R网页采集:解决网页分页与网址超链接问题

# 抓取电影信息

movies <- data.frame()

for (i in 1:length(URL$url)){

pages <- read_html(str_c(' http://maoyan.com ',URL$url[i]))

# 爬取电影名

title <- pages%>%html_nodes('.movie-brief-container .name')%>%html_text()

# 爬取电影上映时间

time <- pages%>%html_nodes('.ellipsis~ .ellipsis+ .ellipsis')%>%html_text()

# 创建数据框存储以上信息

movies_data <- data.frame(title,time)

movies <- rbind(movies,movies_data)

}

movies

# 删除无关字符

movies$time <- str_replace_all(movies$time,'大陆上映','')

movies$time <- str_replace_all(movies$time,'大陆重映','')

# 把时间数据转换为日期格式

movies$time <- as.Date(movies$time)

# 导出为CSV文件

write.csv (movies,file="D:/movies.csv",row.names=FALSE)

——————————————

往期精彩:

R网页采集:解决网页分页与网址超链接问题 天善智能 清华教授团队亲自授课,打造人人都能上手的 Python 课程 小程序

R网页采集:解决网页分页与网址超链接问题

本文由R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

别具光芒

别具光芒

李烨 / 人民邮电出版社 / 2006-11 / 55.00元

本书面向实用,提供了大量网页设计与制作的细节图解,由浅入深地讲解网页制作的步骤与方法,同时介绍了Web标准以及使用目前流行的“层”布局方式,并结合多个实例讲解了采用层叠样式表与层布局相结合制作网页的方法。   本书给出了几大典型网页制作实例,包括小型企业网站、电子相册网站、网络电台、网上商店、旅游网站等,这些实例基本上覆盖到了常用的网页设计与制作知识。本书在详细讲解各个实例的过程中,不仅介绍......一起来看看 《别具光芒》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具