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

爬虫代理

背景/引言

在数据分析和统计分析中,我们经常需要将网站上的数据进行抓取,以便进行更进一步分析。这里,我们将介绍如何使用 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和访问头,增强抓取稳定性和安全性,同时能够最大化源数据。如需对抓取内容进一步处理,可以增加相关数据进行分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值