CRAN 任务视图:Web 技术与服务

维护者Mauricio Vargas Sepulveda, Will Beasley
联系方式mavargas11 at uc.cl
版本2023-02-18
URLhttps://CRAN.R-project.org/view=WebTechnologies
源代码https://github.com/cran-task-views/WebTechnologies/
贡献欢迎您对本任务视图提出建议和改进意见,您可以通过 GitHub 上的问题或拉取请求,或通过电子邮件联系维护者。有关更多详细信息,请参阅 贡献指南
引用Mauricio Vargas Sepulveda, Will Beasley (2023). CRAN 任务视图:Web 技术与服务。版本 2023-02-18。URL https://CRAN.R-project.org/view=WebTechnologies。
安装您可以使用 ctv 包自动安装本任务视图中的软件包。例如,ctv::install.views("WebTechnologies", coreOnly = TRUE) 安装所有核心软件包,或 ctv::update.views("WebTechnologies") 安装所有尚未安装和更新的软件包。有关更多详细信息,请参阅 CRAN 任务视图计划

0. 简介

用于处理 Web 的工具

本任务视图推荐使用软件包和策略,以有效地与 R 中的互联网资源进行交互。本任务视图重点关注

  1. 直接数据下载和导入,
  2. 在线服务,
  3. 用于构建基于 Web 的 R 应用程序的框架,
  4. 低级操作,以及
  5. 资源

如果您有关于改进或扩展本任务视图的建议,请在上面链接的 GitHub 存储库中提交问题或拉取请求。如果您无法在 GitHub 上贡献,请通过电子邮件联系任务视图维护者。如果您在下面讨论的软件包中遇到问题,请联系软件包的维护者。

感谢所有对本任务视图做出贡献的人,特别是 Scott Chamberlain、Thomas Leeper、Patrick Mair、Karthik Ram 和 Christopher Gandrud,他们一直维护着本任务视图直到 2021 年。

HTTP 请求的核心工具

R 的大部分功能都由 CRAN 软件包提供,这些软件包建立在 libcurl 之上。四个软件包为大多数现代方法奠定了基础。

  1. httr 是一个面向用户的 HTTP 请求客户端。它利用 curl 包来执行大多数操作。可以通过 httr 的 config 参数将其他选项传递给 curl。如果您正在开发一个调用 Web 服务的包,建议您阅读 httr 的示例。

    httr 团队正在开发它的继任者,httr2。如果您正在创建一个需要稳定基础的包,您现在可以使用 httr 并等待 httr2 v1.0 发布。但是,如果您能够适应 httr2 成熟过程中的重大更改,那么现在投资 httr2 的方法可能会有益。

  2. crul 是另一个利用 curl 的包。它是一个基于 R6 的客户端,支持异步 HTTP 请求、分页助手、通过 webmockr 进行 HTTP 模拟,以及通过 vcr 进行单元测试的请求缓存。crul 旨在被其他包调用,而不是 R 用户。与 httr 不同,crul 的 当前版本 不支持 OAuth。在实例化 crul 的 R6 类时,可以将其他选项传递给 curl。

  3. curl 是一个更底层的包,它提供了一个 R 和 libcurl C 库 之间的紧密接口。它不打算被典型的 R 用户直接调用。curl 可能对基于 Web 的 XML 或 FTP 操作有用(因为 crul 和 httr 主要集中在 HTTP 上)。

  4. utilsbase 是提供 download.file()url() 和相关函数的基本 R 包。这些函数也使用 libcurl。

1. 直接数据下载和导入

近年来,许多函数已更新以适应使用 TLS/SSL 保护的网页。因此,您通常可以下载文件的,如果它的 url 以“http”或“https”开头。

如果数据文件无法通过简单的 url 访问,您可能需要跳到 在线服务 部分。它描述了如何使用特定的 Web 服务,例如 AWS、Google 文档、Twitter、REDCap、PubMed 和维基百科。

如果信息由数据库引擎提供,请查看下面 在线服务 部分中的云服务,以及 数据库 与 R CRAN 任务视图。

直接导入远程文件

许多基本和 CRAN 包提供接受 url 并返回 data.framelist 的函数。

下载远程文件,然后导入

如果您需要处理其他类型的文件,可以通过两个步骤完成。首先从服务器下载文件到本地计算机;其次将新本地文件的路径传递给像 havenforeign 这样的包中的函数。

许多基本和 CRAN 包提供了下载文件的函数

解析结构化网页数据

绝大多数基于网络的数据以纯文本、HTML、XML 或 JSON 的形式进行结构化。Web 服务 API 越来越依赖 JSON,但 XML 在许多应用程序中仍然很普遍。有几个专门用于处理这些格式的包。这些函数可用于直接与不安全的网页交互,或用于解析本地存储或内存中的网页文件。通俗地说,这些活动被称为网页抓取

2. 在线服务

云计算与存储

软件开发

文档和图像

数据处理和可视化

机器学习与翻译

此列表描述了在线服务。有关该主题的更完整说明,请参阅MachineLearning CRAN 任务视图。

空间分析

此列表描述了在线服务。有关该主题的更完整说明,请参阅分析 Spatial 数据 CRAN 任务视图。

社交媒体客户端

除非另有说明,以下软件包提供与其关联服务的接口。

调查、问卷和数据采集工具

网络分析

以下软件包与在线服务交互,这些服务有助于网络分析。

以下软件包与工具交互,这些工具有助于网络分析。

出版物

生成合成数据

体育分析

许多 CRAN 包与促进体育分析的服务交互。有关该主题的更完整处理,请参阅SportsAnalytics CRAN 任务视图。

可重复研究

使用此 Web 技术任务视图中的包可以帮助您以编程方式获取数据,这可以促进可重复研究。有关更多工具和信息,请参阅ReproducibleResearch CRAN 任务视图。

“可重复研究的目标是将特定指令与数据分析和实验数据联系起来,以便可以重新创建、理解和验证学术成果。”

其他 Web 服务

3. 用于构建基于 Web 的 R 应用程序的框架

其他有用的包和函数

4. 低级操作

用于处理 URL 的工具

互联网通信的其他工具

对于特殊情况,以下资源可能有用

处理 HTTP 错误/代码

安全

5. 资源

CRAN 包

核心crulcurlhttr.
常规ajv, analogsea, arrow, aRxiv, aws.signature, AzureAppInsights, AzureAuth, AzureContainers, AzureCosmosR, AzureGraph, AzureKusto, AzureQstor, AzureRMR, AzureStor, AzureTableStor, AzureVision, AzureVM, beakr, bigrquery, boilerpipeR, boxr, brandwatchR, captr, clarifai, crunch, crunchy, data.table, dataone, datarobot, dataverse, duckduckr, europepmc, FastRWeb, fauxpas, fbRads, fiery, gargle, geonapi, geosapi, gh, gistr, git2r, gitlabr, gmailr, googleAnalyticsR, googleAuthR, googleCloudStorageR, googleComputeEngineR, googledrive, googleLanguageR, googlesheets4, googleVis, graphTweets, gsheet, gtrendsR, hackeRnews, htm2txt, htmltools, httpcache, httpcode, httping, httpRequest, httptest, httpuv, httr2, imguR, instaR, ipaddress, jqr, js, jsonlite, jsonvalidate, jstor, languagelayeR, longurl, mailR, mapsapi, mathpix, Microsoft365R, mime, mscstexta4r, mscsweblm4r, nanonext, ndjson, notifyme, oai, OAIHarvester, opencage, opencpu, OpenML, osrm, ows4R, paws, pdftables, pins, plotly, plumber, PostcodesioR, postlightmercury, pubmed.mineR, pushoverr, qualtRics, radiant, RAdwords, rapiclient, Rcrawler, rcrossref, RCurl, rdatacite, readr, redcapAPI, REDCapR, REDCapTidieR, repmis, reqres, request, rerddap, restfulr, Rexperigen, Rfacebook, rfigshare, RgoogleMaps, rhub, rio, rjson, RJSONIO, Rlinkedin, rLTP, roadoi, ROAuth, robotoolbox, robotstxt, Rook, rorcid, rosetteApi, routr, rpinterest, RPushbullet, rrefine, RSclient, rscopus, rsdmx, RSelenium, Rserve, RSmartlyIO, rtoot, rtweet, rvest, RYandexTranslate, scholar, searchConsoleR, selectr, seleniumPipes, sendmailR, servr, shiny, slackr, spiderbar, streamR, swagger, tidyREDCap, tidyRSS, uaparserjs, urlshorteneR, urltools, V8, vcr, vkR, W3CMarkupValidator, WebAnalytics, webmockr, webreadr, webshot, webutils, whisker, WikidataQueryServiceR, WikidataR, WikipediR, WufooR, XML, xml2, xslt, yaml, yhatr, zen4R.
已归档abbyyRrdrop2RSiteCatalystRStripetranscribeRwikipediatrendXML2R.

相关链接

其他资源