r - 如何通过使用 R 选择正确的输入从网站下载数据(查询不会更改 URL)
问题描述
我是网络抓取的新手。我想从这个网站提取数据:https ://bpstat.bportugal.pt/dados/explorer
我已经设法使用 httr 包使用 GET() 函数获得响应(即使每次运行代码时都不是肯定的)。
library(httr)
URL <- "https://bpstat.bportugal.pt/dados/explorer"
r <- GET(URL)
r
Response [https://bpstat.bportugal.pt/dados/explorer]
Date: 2020-04-09 22:25
Status: 200
Content-Type: text/html; charset=utf-8
Size: 3.36 kB
我想发送一个请求,其中包含我将手动提供的这些信息:
接受第一页上的 cookie
在右上角,选择 EN 表示英语
按域过滤 – 外部统计 – 国际收支
外部业务 - 国际收支 - 经常账户和资本账户 - 经常账户 - 商品和服务账户(突出显示以下选项):
货物账户;服务帐户;实物投入的制造服务;维护和维修服务;运输服务;旅行; 建筑服务;保险和养老金服务;金融服务; 使用知识产权的费用;电信、计算机和信息服务;公司提供的其他服务;个人、文化和娱乐服务;政府商品和服务
交易对手领土:所有国家
数据类型:信用;借方
周期:每月
计量单位:百万欧元
选择所有系列(单击它们,使它们以深蓝色突出显示。在页面顶部单击“选定成员”,然后单击“转到相关系列”)
转到相关系列(增加要在屏幕底部的页面上查看的数字。从 10 增加到 50)
手动勾选除“季节性调整”之外的所有框
转到“选择列表” 选择“见表”
下载 Excel 顶部三个垂直点(“仅可见数据”)
我见过几个例子,比如: -使用 httr R 包发送一个 POST 请求, 但我不知道我需要提供什么输入......
解决方案
该网站有一个记录在案的 API,您可以使用它来提取数据,而不是尝试在https://bpstat.bportugal.pt/data/docs/上抓取页面
输出是 JSON-stat,您可以使用https://github.com/ajschumacher/rjstat使它们更易于处理。
推荐阅读
- c++ - 使用 std::vector 的 Eigen::MatrixXd.block 分配
- php - 从外键表 Laravel 中获取第一张图片
- c++ - 数据超过 7 位时发送两个字节?
- python - Django:结合两个for循环
- android - 添加 google play-service-location 库后如何解决“不兼容的 Gradle 版本”错误?
- swift - 尝试将 Result 类型与委托一起使用时出错
- javascript - 如何通过ajax用默认对象填充选择
- progressive-web-apps - Angular PWA 离线存储
- sql - 我将如何在 MVC 控制器中使用 SQL 查询,并获取在 PDF 中显示的值
- python - 有没有办法在 PyCharm 调试器中查看变量中的最后 100 个元素?