weixin_51452374 2021-04-14 03:02 采纳率: 50%
浏览 32

R语言——数据爬取:有效率的爬取网页数据

 

使用R语言  数据包“rvest” 去爬取世界2011至2021年间的世界100强企业。

指定网站:(https://brandirectory.com/rankings/global/table).

这里爬出来的是2021年的世界500强, 请问要怎么改才能提取到前100强以及有没有更加有效率的方法爬取2011-2021年的十年间的方法呢? 还是就只能一年一年的爬取了。 

 

url <-'https://brandirectory.com/rankings/global/2021/table'
webpage <- read_html(url)
xdata <- webpage %>% html_nodes("tbody tr")
DataX = NULL
for (i in 1:length(xdata)){
  tmp <- xdata[i] %>% html_nodes("td")
  rank21 <- tmp[1] %>% html_text()  %>% as.numeric()
  rank20 <- tmp[2] %>% html_text()  %>% as.numeric()
  company = trimws(gsub("\n", "", tmp[3] %>% html_text()))
  country = trimws(gsub("\n", "", tmp[4] %>% html_text()))
  flag <- tmp[5] %>% html_nodes("img") %>% xml_attr("src")
  value21 <- tmp[5] %>% html_nodes("span") %>% html_text()
  value20 <- tmp[6] %>% html_nodes("span") %>% html_text()
  rate21 = trimws(gsub("\n", "", tmp[7] %>% html_text()))
  rate20 = trimws(gsub("\n", "", tmp[8] %>% html_text()))
  DataX = rbind(DataX, c(rank21, rank20,company, country,
                         value21, value20, rate21, rate20))
  }
  • 写回答

4条回答 默认 最新

  • 关注

    先分析一下要爬页面的数据,根据情况改进代码。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画