用R语言抓取历史天气数据

中国城市历史数据网保存有从2011年1月1日起的历史数据,包括天气、高低温以及风向和风力,对于需要分析气象数据又苦于无法得到数据的研究人员,爬取数据不失为一个办法中的办法。但是网上爬取数据的又多为Python,用R语言的较少,可能和R的爬取能力较弱有关吧。但是对于习惯了R的人,还是需要一个用R编写的爬虫踏实些。。。下面就为大家送上相应的R代码。

需要爬取的网页是这样的::

http://www.tianqihoubao.com/lishi/kangding/month/201707.html


从网页源代码可以看到每日天气数据是储存在"<td>"节点上的,而且每日之间间隔4个节点。

做好以上分析后,就可以爬取相应的数据,清洗后装载到一个数据框中,最后保存到csv文件中,完成数据爬取。

以下是相应的R程序。可以修改成自己需要爬取的城市、时间段以及保存的文件名。

#加载网页抓取程序包与数据清理程序包,报错需要安装相应的程序包
library(rvest)
library(plyr)
library(stringr)

#设定装载天气数据的数据包
tdata=data.frame()

#设定抓取的城市,这里设定为四川省康定市
city <- ‘kangding’

#设定抓取的年份,从11年一直到19年
y<-c(“11”,“12”,“13”,“14”,“15”,“16”,“17”,“18”,“19”)
#设定抓取的月份,共12个月
m<-c(“01”,“02”,“03”,“04”,“05”,“06”,“07”,“08”,“09”,“10”,“11”,“12”)

for (j in 1:length(y)){
for (k in 1:length(m)){
date <- paste0(“20”,y[j],m[k])
#设定历史天气的url
baseUrl <- ‘http://www.tianqihoubao.com/lishi/’
url <- paste(baseUrl, city, ‘/month/’, date, ‘.html’, sep = ‘’)

content <- url %>% read_html(encoding=‘GBK’) %>% html_nodes(‘td’)

n<-length(content)

for(i in 1:(n/4-1)){
date.line<-content[i*4+1]
date<-as.numeric(regmatches(date.line,regexec("[0-9]{8}",date.line))[[1]][1])

wea<-content[i*4+2]
wea<-str_trim(unlist(str_split(wea,"\r\n")))
wea<-gsub("</td>","",wea)
wea<-gsub("/","",wea)
wea1<-wea[2]
wea2<-wea[3]

temp.line<-content[i*4+3]
temp.line<-str_trim(unlist(str_split(temp.line,"\r\n")))
temp.line<-gsub(“℃”,"",temp.line)
hightemp<-temp.line[2]
lowtemp<-temp.line[4]

wind<-content[i*4+4]
wind<-str_trim(unlist(str_split(wind,"\r\n")))
wind<-gsub("</td>","",wind)
wind<-gsub("/","",wind)
wind1<-wind[2]
wind2<-wind[3]

hh<-data.frame(cbind(date,hightemp,lowtemp,wea1,wea2,wind1,wind2))

tdata<-rbind(tdata,hh)
}
}}

#保存文件到E盘
write.csv(tdata,“E:/kangding_weather.csv”)

用R语言抓取历史天气数据相关推荐

  1. 从网上抓取历史天气数据

    读<鲜活的数据>第二章有个从wunderground.com获取历史天气数据的例子.那是个国外的网站,或许国内的天气网站有更多关于国内城市的天气信息,用搜狗搜了"历史天气&quo ...

  2. scrapy爬取天气存MySQL_Scrapy实战篇(五)之爬取历史天气数据

    本篇文章我们以抓取历史天气数据为例,简单说明数据抓取的两种方式: 1.一般简单或者较小量的数据需求,我们以requests(selenum)+beautiful的方式抓取数据 2.当我们需要的数据量较 ...

  3. r语言抓取网页数据_使用R进行网页抓取的简介

    r语言抓取网页数据 by Hiren Patel 希伦·帕特尔(Hiren Patel) 使用R进行网页抓取的简介 (An introduction to web scraping using R) ...

  4. python爬取历史天气_Python 爬取历史天气数据

    Python 爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据 ...

  5. python爬取天气数据_Python爬取历史天气数据

    Python爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据的 ...

  6. python爬取历史天气数据

    爬取历史天气数据 import requests from requests.exceptions import RequestException from bs4 import BeautifulS ...

  7. python爬取历史天气数据并保存_Python爬取天气网历史天气数据

    我的第一篇博客,哈哈哈,记录一下我的Python进阶之路! 今天写了一个简单的爬虫. 使用python的requests 和BeautifulSoup模块,Python 2.7.12可在命令行中直接使 ...

  8. python爬取历史天气查询_Python爬虫实战-爬取历史天气数据

    最近项目需要对合肥市历史天气数据进行爬取,分析了几个天气数据网站,最终选择天气后报网站. 将实现过程遇到的问题以及下来,供以后参考. 步骤分析 这里我使用的是Python中的requests库Beau ...

  9. R语言爬取中国天气网单个城市实时天气预报数据

    在传统零售行业,雨天天气大概会影响晴天30%-40%的销售业绩,所以从网上获取天气数据来作分析,并根据天气数据作出预测,提前做好预防措施和提醒业务人员,把损失减少到最低就显得十分重要,用R语言的rve ...

最新文章

  1. inet_ntoa()返回字符串的生命周期
  2. 风控业务中的信用与欺诈的定义区别
  3. tensor判断是否相等_PyTorch的Tensor(中)
  4. 我的Go+语言初体验——(6)整型有理数数据类型
  5. (软件工程复习核心重点)第六章实现和测试-第四节:集成测试
  6. PRML-系列一之1.1
  7. iOS-APP启动页加载广告
  8. 作为研究生/博士生导师招收的第一个学生是一种怎样的体验?
  9. 【OpenCV】矩阵掩模操作
  10. 【Linux 应用编程】进程管理 - 进程、线程和程序
  11. 学数学建模算法对计算机的好处,浅议数学建模与算法
  12. 12306火车票抢票助手使用详解
  13. zui之0001 npm install zui
  14. matlab 图案 柱状图_如何用matlab画柱形图 - 卡饭网
  15. SAP smartforms打印图片
  16. 虚函数与虚函数表剖析(动多态)
  17. 激活函数选取不当为什会造成梯度消失
  18. 观世音菩萨为什么不直接将整个地狱的众生都拯救出来?
  19. 数字SOC设计之低功耗设计入门(二)——功耗的分析
  20. 计算机网络应用技术小结

热门文章

  1. phpcm——域名转换问题
  2. 直播预告 PhD Debate-8 | 迈向常识知识的高级语义理解
  3. 【附源码】计算机毕业设计SSM网络相册设计
  4. Web前端学习笔记:day01(HTML)
  5. linux 命令之 ls 只显示目录或文件
  6. python通讯录完整(包括GUI界面)BUG已经修复
  7. 【微软比特熊故事汇】11月英雄故事:理想在现实中闪光,感恩技术让我们相聚
  8. Jenkins 简介
  9. android屏幕坏了,手机屏幕坏了怎么办 手机屏幕坏了怎么换
  10. 小米MIUI NFC、WIFI权限排查踩坑