R的网络爬虫

下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容。

1)栏目后续章节的文章将深入概括R语言在临床研究和新药创新领域的应用,填补了国内R教材中尚未广泛覆盖的部分内容。

2)专栏每篇文章都在 5000 字以上,质量平均分高达 94 分。已发表章节也会增加新的文章,已发表的文章也会更新版本,可留意专栏内容和题目信息。

3)由于每结束一个章节,专栏的优惠力度就会减小,当下正是订阅的最佳优惠时段,诚邀各位积极订阅!看全文请点击下面链接。

2章9节:认识R与数据库连接和网络爬虫,学会在R中使用SQL语言_sql和r语言-CSDN博客文章浏览阅读181次。R语言作为一种强大的统计计算和数据分析工具,不仅在数据处理和可视化方面表现出色,还在与数据库连接和网络爬虫方面具备强大功能。本文将介绍如何在R中进行数据库连接和网络爬虫,并展示如何使用SQL语言在R中进行数据操作。_sql和r语言https://blog.csdn.net/2301_79425796/article/details/140678486?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22140678486%22%2C%22source%22%3A%222301_79425796%22%7D

欢迎订阅我们专栏

.......前面部分请点击上面链接看原文(原文6149字)

 

 二、R的网络爬虫

网络爬虫(Web Scraping)是一种用于自动提取网页内容的技术。通过模拟浏览器行为,网络爬虫可以访问网站、读取网页源代码,并从中提取所需的信息。这种技术在数据分析、市场研究、学术研究等领域有广泛的应用,能够帮助用户从大量的网页中快速获取数据。

网络爬虫的基本工作流程可以分为以下几个步骤:

  1. 发送请求:向目标网站发送HTTP请求(如GET请求),以获取网页的HTML源代码。
  2. 解析网页:解析获取到的HTML源代码,找到需要提取的数据位置。这通常需要用到HTML解析器。
  3. 提取数据:使用选择器(如XPath或CSS选择器)提取所需的数据。
  4. 保存数据:将提取到的数据存储到本地文件、数据库或其他数据存储介质中,以便后续处理和分析。

但是,大家要注意,在使用网络爬虫时,必须遵守相关法律法规和网站的使用条款。一些网站明确禁止爬虫行为,或者要求用户获得许可后才能进行数据抓取。未经授权的大规模爬取可能会对目标网站造成负担,甚至导致法律纠纷。因此,在进行网络爬虫时,应该尊重网站的robots.txt文件,该文件规定了网站允许和禁止爬取的部分。

R语言作为一种强大的数据分析工具,也提供了多个强大的网络爬虫包,主要包括rvesthttrRSelenium

rvest包是R语言中最受欢迎的网络爬虫工具之一,由Hadley Wickham开发,旨在简化网页抓取过程。它基于xml2httr包,提供了类似于Python中BeautifulSoup的功能,使得HTML文档的解析和数据提取变得简单直观。

httr包是另一个用于网络爬虫的常用工具,它提供了强大的HTTP请求功能,可以轻松处理GET、POST、PUT、DELETE等请求。与rvest不同,httr更侧重于处理HTTP协议,使得用户能够更灵活地控制请求和响应。

同时,对于需要处理JavaScript动态加载内容的网页,RSelenium是一个强大的工具。它基于Selenium WebDriver,可以模拟浏览器行为,从而抓取动态生成的网页内容。

记得我们需要安装并加载好rvest包,假设我们要爬这个网页的信息,Star Wars films • rvestrvesthttps://rvest.tidyverse.org/articles/starwars.html

9f108220b1114a189e51be9bb37e3dc0.png

# 加载 rvest 包
library(rvest)

# 读取 HTML 页面
starwars <- read_html("https://rvest.tidyverse.org/articles/starwars.html")

# 查找与 CSS 选择器 "section" 匹配的所有元素
films <- starwars %>% html_elements("section")
films
#> {xml_nodeset (7)}
#> [1] <section><h2 data-id="1">\nThe Phantom Menace\n</h2>\n<p>\nReleased: 1999 ...
#> [2] <section><h2 data-id="2">\nAttack of the Clones\n</h2>\n<p>\nReleased: 20 ...
#> [3] <section><h2 data-id="3">\nRevenge of the Sith\n</h2>\n<p>\nReleased: 200 ...
#> [4] <section><h2 data-id="4">\nA New Hope\n</h2>\n<p>\nReleased: 1977-05-25\n ...
#> [5] <section><h2 data-id="5">\nThe Empire Strikes Back\n</h2>\n<p>\nReleased: ...
#> [6] <section><h2 data-id="6">\nReturn of the Jedi\n</h2>\n<p>\nReleased: 1983 ...
#> [7] <section><h2 data-id="7">\nThe Force Awakens\n</h2>\n<p>\nReleased: 2015- ...

# 提取每个 <section> 元素中的第一个 <h2> 元素的文本内容
title <- films %>% 
  html_element("h2") %>% 
  html_text2()
title
#> [1] "The Phantom Menace"      "Attack of the Clones"   
#> [3] "Revenge of the Sith"     "A New Hope"             
#> [5] "The Empire Strikes Back" "Return of the Jedi"     
#> [7] "The Force Awakens"

# 提取每个 <section> 元素中的第一个 <h2> 元素的 data-id 属性值,并将其解析为整数
episode <- films %>% 
  html_element("h2") %>% 
  html_attr("data-id") %>% 
  readr::parse_integer()
episode
#> [1] 1 2 3 4 5 6 7

 

.....

欢迎订阅我们专栏,深度系统地学习R语言。 

为帮助大家更出色地掌握临床统计、数据挖掘以及人工智能建模的入门知识和应用,由于众多同学在计算机编程上经验欠缺,特此开设《用R 探索医药数据科学》专栏。该专栏每周至少会定期更新三篇,直到整个专栏更新完成。每篇文章都在 5000 字以上,质量平均分高达 94 分。还要提醒大家的是,每结束一个章节,专栏的优惠力度就会减小,当下正是订阅的最佳优惠时段,诚邀各位积极订阅!

专栏《用R 探索医药数据科学》链接:https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482

7715ecd1e62c4389aa65ce0aecdc552d.png​​​

 

 

 

6d9e121908a54cafa0e020f274b446e0.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据科学和人工智能兴趣组

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值