python爬取历史天气数据
来源:互联网 发布:c语言实现文件复制传输 编辑:程序博客网 时间:2024/05/16 15:24
环境说明
扒取的网站:天气网,http://lishi.tianqi.com/
python版本:2.7
操作系统:windows 7
所依赖的包(如若没有请安装)
代码说明
# -*- coding=utf-8 -*-from bs4 import BeautifulSoupimport requestsimport xlwtimport os#获得某一个月的天气数据def getListByUrl(url): res = requests.get(url) soup = BeautifulSoup(res.text,"html.parser") weathers = soup.select("#tool_site") title = weathers[1].select("h3")[0].text weatherInfors = weathers[1].select("ul") weatherList = list() for weatherInfor in weatherInfors: singleWeather = list() for li in weatherInfor.select('li'): singleWeather.append(li.text) weatherList.append(singleWeather) print(title) return weatherList,title#@par:addressUrl 获得某地区的数据#@par:excelSavePath 数据的保存地址def getListByAddress(addressUrl,excelSavePath): # url = "http://lishi.tianqi.com/beijing/index.html" url = addressUrl res = requests.get(url) soup = BeautifulSoup(res.text,"html.parser") dates = soup.select(".tqtongji1 ul li a") workbook = xlwt.Workbook(encoding='utf-8') for d in dates: weatherList,title = getListByUrl(d["href"]) booksheet = workbook.add_sheet(title,cell_overwrite_ok=True) for i,row in enumerate(weatherList): for j,col in enumerate(row): booksheet.write(i,j,col) workbook.save(excelSavePath)if __name__ == "__main__": addressName = raw_input("请输入即将获取天气的城市:\n") addresses = BeautifulSoup(requests.get('http://lishi.tianqi.com/').text,"html.parser") queryAddress = addresses.find_all('a',text=addressName) if len(queryAddress): savePath = raw_input("检测到有该城市数据,请输入即将保存天气数据的路径(如若不输入,将默认保存到c:/weather/"+addressName+".xls):\n") if not savePath.strip(): if not os.path.exists('c:/weather'): os.makedirs('c:/weather') savePath = "c:/weather/"+addressName+".xls" for q in queryAddress: getListByAddress(q["href"],savePath) print("已经天气数据保存到:"+savePath) else: print("不存在该城市的数据")
本代码是在windows下编辑的,如若想要在linux下运行,请在头部加上#! python环境
本代码功能描述:
- 输入:
- 城市名称,如果没有则提示“不存在该城市的数据”
- 保存路径,如果不输入则默认保存在“c:/weather/城市名称.xls”
输出:
- 带有该城市的天气数据
代码演示
本程序是在pycharm IDE下开发的,直接利用pycharm执行,大家可以用别的编辑器来执行(注意,由于编码问题,如果直接用dos来执行会报错)
将getWeatherByQuery.py文件导入到pycharm下执行,如下图所示:
按照提示,输入城市,检测到有该城市,请求输入保存路径
- 在这里我们输入要保存的路径(当然也可以直接回车),在这里我输入“d:\weather\bj.xls”(请确保该目录存在,因为程序不会自动去创建目录)
- 此时程序会将各月份的数据导出
- 执行完之后结果如下图:
- excel中的数据如下图:
0 0
- python爬取历史天气数据
- Python爬取天气网历史天气数据
- python爬取天气数据
- Python爬取中国天气网天气数据
- Python爬取天气信息
- python多进程爬取天气信息
- python爬取天气网历史数据
- 爬取天气数据+热力图
- python历史天气采集分析
- 获取历史天气数据,数据挖掘必备
- 简明 python例程 (爬取 某地一年天气最高温度)
- Python简单爬虫(爬取天气信息)
- 从网上抓取历史天气数据
- python爬取数据
- R语言对爬取的天气数据进行整理
- Python3.x 爬虫 爬取中国天气网数据
- python3网络爬虫爬取天气网空气质量数据
- Python-爬取中国天气网天气并通过邮箱定时发送
- 解决jsp页面取出的数据乱码
- androoid framework学习之 - InCallUI中CallButton界面更新介绍(audioButton等)
- 使用idea创建springboot项目并打成war包发布到weblogic上
- opencv 一种不均匀光照的补偿方法
- C语言 system函数
- python爬取历史天气数据
- rac 环境下增加控制文件
- butterknife 8.4.0
- zookeeper实现分布式锁
- android权限(permission)大全
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- 智和网管平台SugarNMS能源行业综合网管解决方案
- HttpURLConnection实现下载功能
- oracle自增长序列