基于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安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
Selenium元素的常用操作方法分析
Aug 10 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
pytorch的batch normalize使用详解
Jan 15 Python
使用python实现多维数据降维操作
Feb 24 Python
Python request操作步骤及代码实例
Apr 13 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
Python 字符串池化的前提
Jul 03 Python
几款好用的python工具库(小结)
Oct 20 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的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
python thread 并发且顺序运行示例
2009/04/09 Python
python定时器使用示例分享
2014/02/16 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
三个Unix的命令面试题
2015/04/12 面试题
鲜花方阵解说词
2014/02/13 职场文书
银行转正自我鉴定
2014/09/29 职场文书
家长评语怎么写
2014/12/30 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
婚前保证书范文
2015/02/28 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书