玩转R爬虫专题课件.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
玩转 R 爬虫 首先思考一下,我们经常会在登录网站时,碰到一些验证码,网站会为此解释说:“请帮我们确认你是不是机器人”,这个‘’机器人” 指的是什么? 网络爬虫,又称为网络蜘蛛、网络机器人。它们被广泛的应用在互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。简而言之,爬虫能通过一定的爬取技术,自动获得你在互联网上用肉眼所能看到的信息。比如:百度、谷歌等搜索引擎都是使用了爬虫来获取搜索结果。 2. 使用 R 爬虫包抓取网页数据 3. 清洗数据 1. 分析你所要抓取的网页结构 4. 存储数据 学会爬虫,你需要: 了解 HTML、HTTP 协议 了解网络数据常用存储格式:JSON 学会 rvest、httr 这两个常用爬虫包 学会正则表达式(stringr 包或者 base 包里的 grep 等函数) 学会本地读写操作 进阶爬虫,你需要: 学会抓包 学会调用 API 接口 学会使用捕获错误机制 学会使用反反爬策略 熟练正则表达式操作 能使用多线程加快爬虫速度 什么是 HTML? 使用 rvest 包抓取数据 什么是 HTTP 协议? 使用 httr 包抓取数据 进阶之使用反反爬策略 什么是 HTML? HTML,即 HyperText Markup Language,一种超文本标记语言,用来创建网页。 巧用浏览器的查看器面板 常见 HTML 节点介绍 Q:我们已经知道如何在面板中定位 HTML 节点,那我们怎么通过 R 来获取该节点包含的数据呢? A:rvest 包,你值得拥有!回顾前面展示的代码,其实已经包含了 rvest 包中的函数:read_html( )、html_nodes( )等 使用 rvest 包抓取数据 rvest 包中最最最常用函数: read_html( )、html_nodes( )、html_text( )、html_table( )、html_attr( ) 节点定位方法: 使用 css 选择器或 xpath 方法定位到节点,从而提取出节点所包含的数据。 案例一:抓取 CRAN 上所有 R 包的信息 案例二:抓取 stackoverflow 上关于 R 的问题 案例三:抓取豆瓣电影 top250 的超简单未遂版本 rvest 包的优缺点: 优点:简单、易上手 缺点:① 无法直接获取动态加载的数据;② 在反爬较严格的网站面前,显得有些弱鸡,访问经常变得不稳定。 解决办法:使用 httr 包 httr 包的先修知识:了解 HTTP 协议 什么是 HTTP 协议? HTTP 是什么(WHAT):HTTP,全称是 Hyper Text Transfer Protocol,即超文本传输协议,但是 HTTP 并不仅仅用来传输超文本的标准,它还可以被用来向服务器请求几乎任何类型的资源。 HTTP 协议在网络传输中的工作原理(HOW): 1. 用户在浏览器里输入想要到达的 URL(网址) 2. 浏览器起到 http 客户端(user client)的作用,用来发起请求(request) 3. http 服务器(web server)响应请求(response),返回用户所需要的文件 4. 所有请求文件发送完毕后,服务器会关闭与 http 客户端的连接 HTTP 消息的组成部分 HTTP 消息由三部分组成: 起始行(start line) 标头(headers) 正文(body) HTTP 消息的组成部分 HTTP 消息的三个组成成分的内容是不一样的,取决于该 HTTP 消息属于请求(request)还是响应(response) HTTP 请求的结构 Method:GET、POST、DELETE等 Headers:请求头部分,包含UA、cookie等 Body: GET方法:一般不会把数据存放在请求正文中,把想要的资源直接写在链接里 POST 方法:会把需要的资源用数据暗号的形式存放在正文中,安全性高 HTTP 响应的结构 Status code:2xx 表示请求成功,3xx表示重定向,4xx表示服务器拒绝你的访问,5xx表示服务器出现错误 Headers:响应标头,不重要 Body: 可能返回 HTML 页面源码,也可能返回动态加载的 JSON 格式数据 响应正文的常见数据格式:JSON 使用 httr 包抓取数据 1. 找到请求资源所在的 URL 捕获错误机制(why): 自己造成的错误:构造链接发生错误 服务器端出错:访问了死链(如 404 页面找不到) 网络问题:网络连接突然中断了 捕获错误机制(HOW): 使用 tryCatch( ) 语句: tryCatch( {可能出现问题的语句}, error = function(e){处理错误情况},

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档