加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

使用R从网页中抓取可下载文件的链接地址?

发布时间:2020-12-14 22:34:19 所属栏目:资源 来源:网络整理
导读:我正在尝试自动化一个过程,该过程涉及从几个网页下载.zip文件并提取它们包含的.csv文件.挑战在于.zip文件名以及链接地址每周或每年更改一次,具体取决于页面.有没有办法从这些页面中抓取当前链接地址,以便我可以将这些地址提供给下载文件的函数? 其中一个目
我正在尝试自动化一个过程,该过程涉及从几个网页下载.zip文件并提取它们包含的.csv文件.挑战在于.zip文件名以及链接地址每周或每年更改一次,具体取决于页面.有没有办法从这些页面中抓取当前链接地址,以便我可以将这些地址提供给下载文件的函数?

其中一个目标页面是this one.我要下载的文件是标题为“2015 Realtime Complete All Africa File”的第二个项目符号,即压缩的.csv.在我写的时候,该文件在网页上被标记为“Realtime 2015 All Africa File(2015年7月11日更新)(csv)”,我想要的链接地址是http://www.acleddata.com/wp-content/uploads/2015/07/ACLED-All-Africa-File_20150101-to-20150711_csv.zip,但是今天应该更改,因为数据是每周一更新—因此我的挑战.

我尝试但未能使用’rvest’和Chrome中的selectorgadet扩展名自动提取.zip文件名.这是怎么回事:

> library(rvest)
> realtime.page <- "http://www.acleddata.com/data/realtime-data-2015/"
> realtime.html <- html(realtime.page)
> realtime.link <- html_node(realtime.html,xpath = "//ul[(((count(preceding-sibling::*) + 1) = 7) and parent::*)]//li+//li//a")
> realtime.link
[1] NA

调用html_node()的xpath来自于突出显示实时2015全非文件(2015年7月11日更新)(csv)字段的(csv)部分,然后单击页面上足够的其他突出显示位以消除所有的黄色,只留下红色和绿色.

我在这个过程中犯了一个小错误,还是我完全走错了轨道?正如你所知,我没有HTML和网络抓取的经验,所以我真的很感激一些帮助.

解决方法

我认为你试图在一个xpath表达式中做太多 – 我会用一系列较小的步骤攻击问题:
library(rvest)
library(stringr)
page <- html("http://www.acleddata.com/data/realtime-data-2015/")

page %>%
  html_nodes("a") %>%       # find all links
  html_attr("href") %>%     # get the url
  str_subset(".xlsx") %>% # find those that end in xlsx
  .[[1]]                    # look at the first one

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读