【问题标题】:Use rvest package to scrape aviation safety data使用 rvest 包刮取航空安全数据
【发布时间】:2018-03-05 08:31:57
【问题描述】:

我是 R 新手,在 Web 编程方面经验为零。 现在我被分配了一个项目来处理和可视化航空安全数据。 我在网上搜索了数据,得到了这里的网站http://aviation-safety.net/database/ 我对飞机类型、年份、国家和航空公司子类别感兴趣,如何使用 rvest 将这些数据作为数据框抓取?

这就像一个搭便车的问题,但我不知道刮擦。

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    实际上rvest 让这变得非常简单。举个例子链接到 1919 年的数据,然后

    library(rvest)
    
    read_html("http://aviation-safety.net/database/dblist.php?Year=1919") %>%
      html_table()
    
    [[1]]
             date            type registration operator fat.            location    pic cat
    1 02-AUG-1919   Caproni Ca.48               Caproni   14              Verona NA  NA  A1
    2 11-AUG-1919 Felixstowe Fury         N123      RAF    1 near Felixtowe RNAS NA  NA  A1
    

    而且链接应该是直截了当的,即使没有刮掉它们,对吧?要从图片中获取国家/地区,您必须选择国旗图片标题

    read_html("http://aviation-safety.net/database/dblist.php?Year=1919") %>%
      html_nodes(".innertube > table") %>%
      html_nodes(".list > img") %>% html_attr("title") %>% na.omit()
    
    [1] "Italy" "U.K." 
    attr(,"na.action")
    

    【讨论】:

    • 但是如果我想获取所有数据而不是单个年份或国家/地区怎么办,我的意思是年份可能会更容易,因为我可以对其进行循环,那么国家/地区呢?
    • 那么你必须把它和rbind结合起来,因为它来自不同的URL。只需将它们全部放在一个 lapply 循环左右 -
    猜你喜欢
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    相关资源
    最近更新 更多