用R语言抓取历史天气数据
用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语言抓取历史天气数据相关推荐
- 从网上抓取历史天气数据
读<鲜活的数据>第二章有个从wunderground.com获取历史天气数据的例子.那是个国外的网站,或许国内的天气网站有更多关于国内城市的天气信息,用搜狗搜了"历史天气&quo ...
- scrapy爬取天气存MySQL_Scrapy实战篇(五)之爬取历史天气数据
本篇文章我们以抓取历史天气数据为例,简单说明数据抓取的两种方式: 1.一般简单或者较小量的数据需求,我们以requests(selenum)+beautiful的方式抓取数据 2.当我们需要的数据量较 ...
- r语言抓取网页数据_使用R进行网页抓取的简介
r语言抓取网页数据 by Hiren Patel 希伦·帕特尔(Hiren Patel) 使用R进行网页抓取的简介 (An introduction to web scraping using R) ...
- python爬取历史天气_Python 爬取历史天气数据
Python 爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据 ...
- python爬取天气数据_Python爬取历史天气数据
Python爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据的 ...
- python爬取历史天气数据
爬取历史天气数据 import requests from requests.exceptions import RequestException from bs4 import BeautifulS ...
- python爬取历史天气数据并保存_Python爬取天气网历史天气数据
我的第一篇博客,哈哈哈,记录一下我的Python进阶之路! 今天写了一个简单的爬虫. 使用python的requests 和BeautifulSoup模块,Python 2.7.12可在命令行中直接使 ...
- python爬取历史天气查询_Python爬虫实战-爬取历史天气数据
最近项目需要对合肥市历史天气数据进行爬取,分析了几个天气数据网站,最终选择天气后报网站. 将实现过程遇到的问题以及下来,供以后参考. 步骤分析 这里我使用的是Python中的requests库Beau ...
- R语言爬取中国天气网单个城市实时天气预报数据
在传统零售行业,雨天天气大概会影响晴天30%-40%的销售业绩,所以从网上获取天气数据来作分析,并根据天气数据作出预测,提前做好预防措施和提醒业务人员,把损失减少到最低就显得十分重要,用R语言的rve ...
最新文章
- inet_ntoa()返回字符串的生命周期
- 风控业务中的信用与欺诈的定义区别
- tensor判断是否相等_PyTorch的Tensor(中)
- 我的Go+语言初体验——(6)整型有理数数据类型
- (软件工程复习核心重点)第六章实现和测试-第四节:集成测试
- PRML-系列一之1.1
- iOS-APP启动页加载广告
- 作为研究生/博士生导师招收的第一个学生是一种怎样的体验?
- 【OpenCV】矩阵掩模操作
- 【Linux 应用编程】进程管理 - 进程、线程和程序
- 学数学建模算法对计算机的好处,浅议数学建模与算法
- 12306火车票抢票助手使用详解
- zui之0001 npm install zui
- matlab 图案 柱状图_如何用matlab画柱形图 - 卡饭网
- SAP smartforms打印图片
- 虚函数与虚函数表剖析(动多态)
- 激活函数选取不当为什会造成梯度消失
- 观世音菩萨为什么不直接将整个地狱的众生都拯救出来?
- 数字SOC设计之低功耗设计入门(二)——功耗的分析
- 计算机网络应用技术小结