基于python历史天气采集的分析


Posted in Python onFebruary 14, 2019

分析历史天气的趋势。

先采集

基于python历史天气采集的分析

基于python历史天气采集的分析

基于python历史天气采集的分析

代码:

#-*- coding:utf-8 -*-
import requests
import random
import MySQLdb
import xlwt
from bs4 import BeautifulSoup
user_agent=['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36',
    'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10',
    'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER',
    'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)',
    ]
headers={
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'zh-CN,zh;q=0.8',
'User-Agent': user_agent[random.randint(0,5)]}
 
myfile=xlwt.Workbook()
wtable=myfile.add_sheet(u"历史天气",cell_overwrite_ok=True)
wtable.write(0,0,u"日期")
wtable.write(0,1,u"最高温度")
wtable.write(0,2,u"最低温度")
wtable.write(0,3,u"天气")
wtable.write(0,4,u"风向")
wtable.write(0,5,u"风力")
 
db = MySQLdb.connect('localhost','root','liao1234','liao',charset='utf8')
cursor = db.cursor()
 
index = requests.get("http://lishi.tianqi.com/binjianqu/index.html",headers=headers)
html_index = index.text
index_soup = BeautifulSoup(html_index)
i = 1
for href in index_soup.find("div",class_="tqtongji1").find_all("a"):
  print href.attrs["href"]
 
 
  url = href.attrs["href"]
  r = requests.get(url,headers = headers)
  html = r.text
  #print html
  soup = BeautifulSoup(html)
  ss = []
  s = []
  for tag in soup.find("div",class_="tqtongji2").find_all("li"):
    print tag.string
    s.append(tag.string)
    if len(s) == 6:
      ss.append(s)
      s = []
  flag = 0
  for s in ss:
    if flag == 0:
      flag = 1
      continue
    else:
      sql = "insert into weather(old_date,hight,low,weather,wind,wind_power) values('%s','%s','%s','%s','%s','%s')"%(s[0],s[1],s[2],s[3],s[4],s[5])
      cursor.execute(sql)
      wtable.write(i,0,s[0])
      wtable.write(i,1,s[1])
      wtable.write(i,2,s[2])
      wtable.write(i,3,s[3])
      wtable.write(i,4,s[4])
      wtable.write(i,5,s[5])
      i += 1
myfile.save("weather.xls")
db.close()

以上这篇基于python历史天气采集的分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python是编译运行的验证方法
Jan 30 Python
Python去除列表中重复元素的方法
Mar 20 Python
Python如何获取系统iops示例代码
Sep 06 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
Sep 14 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
python之yield和Generator深入解析
Sep 18 Python
Python3 io文本及原始流I/O工具用法详解
Mar 23 Python
python的json包位置及用法总结
Jun 21 Python
python和node.js生成当前时间戳的示例
Sep 29 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
python数据分析之单因素分析线性拟合及地理编码
Jun 25 Python
Python 实现域名解析为ip的方法
Feb 14 #Python
解决python Markdown模块乱码的问题
Feb 14 #Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 #Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 #Python
python实现全盘扫描搜索功能的方法
Feb 14 #Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 #Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 #Python
You might like
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
Python是编译运行的验证方法
2015/01/30 Python
浅析Git版本控制器使用
2017/12/10 Python
Linux下python3.7.0安装教程
2018/07/30 Python
python 重命名轴索引的方法
2018/11/10 Python
python join方法使用详解
2019/07/30 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
自我评价的正确写法
2013/09/19 职场文书
建材业务员岗位职责
2013/12/08 职场文书
爱情寄语大全
2014/04/09 职场文书
计算机软件专业求职信
2014/06/10 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
记者节感言
2015/08/03 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书