4步教你用rvest抓取网页并保存为CSV文件

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本文介绍如何使用R语言的`rvest`包抓取网页数据并保存为CSV文件,以界面新闻网站为例。通过设置代理IP(如亿牛云)、User-Agent和Cookie,增强访问稳定性和安全性。代码涵盖环境配置、数据抓取、解析及保存步骤,确保高效、稳定地获取网页数据。适用于数据分析和统计分析场景。

爬虫代理加强版

背景/引言

在数据分析和统计分析中,我们经常需要将网站上的数据进行抓取,以便进行更进一步分析。这里,我们将介绍如何使用 R 语言中的 rvest 包来抓取网页,并将数据保存为 CSV 文件。文章中展示如何设置代理IP,为抓取添加驱动,以及设置User-Agent和Cookie来增强网站访问的稳定性和安全性。

界面新闻(https://www.jiemian.com)是一个以提供全面新闻信息为主的日报网站,包括政策、经济、科技、文化等各类分析和讨论。并以其新闻出版速度和标题精准性著称。在这里,我们将以采集该网站举个例,指导你完成整个过程。


正文

步骤一:安装并展示环境配置

首先,确保你已经安装了 R 和相关包。如果未安装,可通过下列指令安装:

install.packages("rvest")
install.packages("httr")
install.packages("xml2")

步骤二:使用代理IP

为了减少被限制的风险,我们可以使用爬虫代理IP。代理服务器的信息,比如使用“亿牛云爬虫代理”:

  • 域名:proxy.16yun.cn
  • 端口:12345
  • 用户名:username
  • 密码:password

步骤三:抓取数据

在抓取网页时,需要添加 User-Agent 和 Cookie 来驱动添加访问,例如:

library(rvest)
library(httr)

# 配置代理和请求头 (亿牛云爬虫代理 www.16yun.cn)
proxy_url <- "http://proxy.16yun.cn:12345"
proxy_auth <- authenticate("username", "password", type = "basic")
headers <- add_headers(
  `User-Agent` = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
  `Cookie` = "your_cookie_here"
)

# 请求网页
url <- "https://www.jiemian.com"
page <- GET(url, proxy(proxy_url), proxy_auth, headers)

# 解析网页
html <- content(page, "text")
doc <- read_html(html)

# 摘取新闻标题
news_titles <- doc %>% html_nodes(".news-title-class") %>% html_text()
news_links <- doc %>% html_nodes(".news-title-class") %>% html_attr("href")

# 合并数据
news_data <- data.frame(
  title = news_titles,
  link = news_links
)

步骤四:将数据保存为CSV文件

将抓取到的数据导出为CSV:

write.csv(news_data, "jiemian_news.csv", row.names = FALSE)

实例

通过上述代码,我们将能够获取网页中的新闻标题和链接,并保存为本地 CSV 文件。

注意:为保证运行成功,需确保:

  1. 爬虫代理IP配置正确有效。
  2. User-Agent和Cookie设置与网站匹配。
  3. 对网页节点的选择符合实际格式。

结论

通过上述步骤,我们可以完成用 R 语言和 rvest 包对网页数据的自动化探索和摘取。以上代码注重地是应用爬虫代理IP和访问头,增强抓取稳定性和安全性,同时能够最大化源数据。如需对抓取内容进一步处理,可以增加相关数据进行分析。

相关文章
|
8月前
|
监控 数据处理 索引
使用Python批量实现文件夹下所有Excel文件的第二张表合并
使用Python和pandas批量合并文件夹中所有Excel文件的第二张表,通过os库遍历文件,pandas的read_excel读取表,concat函数合并数据。主要步骤包括:1) 遍历获取Excel文件,2) 读取第二张表,3) 合并所有表格,最后将结果保存为新的Excel文件。注意文件路径、表格结构一致性及异常处理。可扩展为动态指定合并表、优化性能、日志记录等功能。适合数据处理初学者提升自动化处理技能。
175 1
|
8月前
实现将信息作为txt,pdf,图片的形式保存到电脑~
实现将信息作为txt,pdf,图片的形式保存到电脑~
|
2月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
78 4
|
8月前
|
存储 JSON 数据库
Python中列表数据的保存与读取:以txt文件为例
Python中列表数据的保存与读取:以txt文件为例
235 2
|
3月前
|
Python
Python实用记录(十二):文件夹下所有文件重命名以及根据图片路径保存到新路径下保存
这篇文章介绍了如何使用Python脚本对TTK100_VOC数据集中的JPEGImages文件夹下的图片文件进行批量重命名,并将它们保存到指定的新路径。
42 0
|
3月前
|
安全 Windows
windows系统中,通过LOAD到入csv格式的文件到neo4j中,如何写文件路径
windows系统中,通过LOAD到入csv格式的文件到neo4j中,如何写文件路径
51 0
|
5月前
|
JSON JavaScript 数据格式
打印插件 hiprint 使用、回单打印PDF保存本地、将列表数据打印成pdf文件保存到本地
这篇文章介绍了如何使用hiprint打印插件将列表数据打印成PDF文件并保存到本地,包括插件的配置、依赖安装、项目代码案例以及如何预览和打印数据。
打印插件 hiprint 使用、回单打印PDF保存本地、将列表数据打印成pdf文件保存到本地
|
8月前
分享:批量多目录图片如何转换PDF,一次性转换多级目录批量的PDF的转换,合并,输出另存等问题,图片转PDF文件,批量图片转PDF文件,多级目录的图片转PDF文件,并且保存到不同的地方,全部搞定
本文介绍了如何高效地将图片转换为PDF,包括单张、多张及多级目录下的图片转换和合并。提供了软件下载链接(百度网盘、腾讯云盘),软件操作简便,支持保存原目录或自定义新目录。转换选项包括单个文件、多个文件夹单独转换以及合并转换。用户可通过双击路径访问源图片和转换结果。该工具特别解决了多级目录图片批量转换的难题,实现保存地址的自由设定,满足不同业务需求。
463 0
|
8月前
|
Windows
推荐:如何批量根据PDF文件名批量查找PDF文件,复制到指定地方保存,通过文件名批量复制文件,按照文件名批量复制文件,根据文件名批量提取文件
该文介绍了一个批量查找PDF文件(不限于找PDF)的工具,用于在多级文件夹中快速查找并复制特定文件。通过下载提供的软件,用户可以加载PDF库,输入文件名列表,设置操作参数(如保存路径、复制或删除)及搜索模式。软件能高效执行,例如在1.1秒内完成对数千文件中的37个目标文件的复制,显著提升了工作效率,避免了手动逐个查找和复制的繁琐。
638 0
|
8月前
|
数据采集 存储 人工智能
Python采集数据保存CSV文件内容乱码解决
Python采集数据保存CSV文件内容乱码解决
103 1