tibble 和传统数据框:哪个更适合网页爬取的数据存储

16yun爬虫代理

概述

在网页爬取过程中,选择合适的数据存储结构至关重要。R 语言中有两种常用的数据存储结构:传统数据框(data.frame)和现代的 tibble(来自 tibble 包)。两者在性能、灵活性和兼容性方面各有优劣。

同时,百度搜索作为中国最受欢迎的搜索引擎,其关键词排名数据可以精准反映用户的搜索意图和当前的网络热点。这些关键词排名数据在舆情监控、市场调研、用户需求分析等领域中具有重要价值。例如,通过采集百度搜索前十排名的链接,可以快速了解热门话题或特定关键词的受欢迎程度,从而为决策提供数据支持。

本文将探讨传统数据框与 tibble 的差异,并通过从百度搜索获取排名前十的关键词链接为例,分析两者在网页爬取数据存储中的表现。

数据框与 tibble 的对比


实现代码:采集百度搜索前十关键词

以下代码展示了如何结合代理 IP 和多线程技术,从百度搜索中爬取排名前十的关键词链接,并将数据存储为 tibble。

library(httr)

library(rvest)

library(tibble)

library(future)

library(furrr)

# 配置爬虫代理参数 亿牛云爬虫代理加强版 www.16yun.cn

proxy_ip <- "proxy.16yun.cn" # 替换为亿牛云提供的IP

proxy_port <- 12345        # 替换为亿牛云提供的端口

proxy_user <- "用户名"      # 替换为亿牛云用户名

proxy_pass <- "密码"        # 替换为亿牛云密码

# 自定义函数:从百度搜索获取前十排名链接

fetch_baidu_links <- function(keyword) {

  # 构建百度搜索 URL

  url <- paste0("https://www.baidu.com/s?wd=", URLencode(keyword))


  # 配置请求头信息

  headers <- add_headers(

    "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.1 Safari/537.36",

    "Cookie" = "your_cookie_here"

  )


  # 配置爬虫代理信息

  proxy <- use_proxy(

    url = paste0("http://", proxy_ip, ":", proxy_port),

    username = proxy_user,

    password = proxy_pass

  )


  # 发送请求

  response <- GET(url, headers, proxy)


  # 检查响应状态并解析 HTML

  if (status_code(response) == 200) {

    page <- read_html(content(response, "text", encoding = "UTF-8"))


    # 提取搜索结果链接

    links <- page %>%

      html_nodes(".t a") %>%  # 根据百度搜索的HTML结构定位

      html_attr("href") %>%

      head(10)  # 获取前10个链接


    return(links)

  } else {

    warning("Failed to fetch search results for keyword: ", keyword)

    return(NULL)

  }

}

# 目标关键词列表

keywords <- c("R语言爬虫", "数据分析工具", "Python与R比较")

# 使用多线程技术并行爬取关键词排名

plan(multisession)  # 设置多线程计划

results <- future_map(keywords, fetch_baidu_links)

# 转换为 tibble

data <- tibble(

  keyword = keywords,

  top_links = results

)

# 输出结果

print(data)

# 保存结果为 CSV

write.csv(data, "baidu_top_links.csv", row.names = FALSE)

总结

百度搜索的关键词排名数据能帮助开发者快速捕捉网络热点并获得用户行为洞察。在网页爬取数据存储方面,传统数据框和 tibble 各具优势:

* 小型项目:传统数据框更适合简单的、无需复杂存储结构的任务。

* 大型项目:对于包含嵌套数据或需要处理大规模数据集的爬取任务,tibble 是更优的选择。

通过结合代理 IP 和多线程技术,以上代码提供了一种高效采集百度搜索排名数据的解决方案,并展示了 tibble 的灵活性和性能优势。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容