import urllib.request
import urllib.parse
import json """
    利用“最美天气”抓取即时天气情况
    http://www.zuimeitianqi.com/ """ class ZuiMei():
    def __init__(self):
        self.url = 'http://www.zuimeitianqi.com/zuimei/queryWeather'
        self.headers = {}
        self.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
        # 部分城市的id信息
        self.cities = {}
        self.cities['成都'] ='01012703'
        self.cities['杭州'] = '01013401'
        self.cities['深圳'] = '01010715'
        self.cities['广州'] = '01010704'
        self.cities['上海'] = '01012601'
        self.cities['北京'] = '01010101'
        # Form Data
        self.data = {}
        self.city = '北京'
        
    
    def query(self,city='北京'):
        if city not in self.cities:
            print('暂时不支持当前城市')
            return
        self.city = city
        data = urllib.parse.urlencode({'cityCode':self.cities[self.city]}).encode('utf-8')
        req = urllib.request.Request(self.url,data,self.headers)
        response = urllib.request.urlopen(req)         html = response.read().decode('utf-8')
        # 解析json数据并打印结果
        self.json_parse(html)
 
     def json_parse(self,html):
        target = json.loads(html)
        actual = target['data'][0]['actual']
        high_temp = actual['high']
        low_temp = actual['low']
        current_temp = actual['tmp']
        today_wea = actual['wea']
        air_desc = actual['desc']
        # 上海 6~-2°C 现在温度 1°C 湿度:53 空气质量不好,注意防霾。 
        print('%s: %s~%s°C 现在温度 %s°C 湿度:%s %s'%(
            self.city,high_temp,low_temp,current_temp,today_wea,air_desc))        if __name__ == '__main__':
    zuimei = ZuiMei()
    zuimei.query('广州')

“最美天气”Python抓取天气的更多相关文章

  1. Python抓取天气信息并存储原来这么简单

    我们计划抓取的数据:杭州的天气信息 实现数据抓取的逻辑:使用python 请求 URL,会返回对应的 HTML 信息,我们解析 html,获得自己需要的数据.(很简单的逻辑) 第一步:创建 Pytho ...

  2. C#抓取天气数据

    使用C#写的一个抓取天气数据的小工具,使用正则匹配的方式实现,代码水平有限,供有需要的同学参考.压缩包中的两个sql语句是建表用的. http://files.cnblogs.com/files/yu ...

  3. 毕设之Python爬取天气数据及可视化分析

    写在前面的一些P话:(https://jq.qq.com/?_wv=1027&k=RFkfeU8j) 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向. ...

  4. Python 抓取网页并提取信息(程序详解)

    最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...

  5. 使用 Python 抓取欧洲足球联赛数据

    Web Scraping在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤    数据的采集和获取    数据的清洗,抽取,变形和装载    数据的分析,探索和预测    ...

  6. python抓取性感尤物美女图

    由于是只用标准库,装了python3运行本代码就能下载到多多的美女图... 写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完. 测试发现速度一般,200K左右的下载速度,也没有很 ...

  7. python抓取网页例子

    python抓取网页例子 最近在学习python,刚刚完成了一个网页抓取的例子,通过python抓取全世界所有的学校以及学院的数据,并存为xml文件.数据源是人人网. 因为刚学习python,写的代码 ...

  8. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>

    Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...

  9. 如何用python抓取js生成的数据 - SegmentFault

    如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...

随机推荐

  1. kali ssh服务连接问题,无法远程管理

    1.修改sshd_config文件,命令为:vi /etc/ssh/sshd_config 2.将#PasswordAuthentication no的注释去掉,并且将NO修改为YES 3.将#Per ...

  2. 51nod_1639:绑鞋带

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1639 #include <bits/stdc++.h& ...

  3. 关于tomcat下startup.bat双击闪退的问题

    背景:之前做单点登录,复制了几个tomcat,改了各自端口,当做不同服务器用. 今天无意间随便点击了一个tomcat下的startup.bat批处理文件,结果出来控制台,没出几行信息就闪退了.点击其他 ...

  4. The request sent by the client was syntactically incorrect问题解决

    The request sent by the client was syntactically incorrect意思嘛,google翻译一下 通过日志不难看出,是由参数不匹配造成的. 所以对于Da ...

  5. Java虚拟机--垃圾收集

    Java虚拟机 1. JVM运行时数据区域 参考书籍:<深入理解Java虚拟机:JVM高级特性与最佳实践,第二版> 资料参考:http://blog.csdn.net/nms312/art ...

  6. 【Django】Django与jinja的不同

    1. http://jinja.pocoo.org/docs/dev/switching/#django 目前已了解的不同: 1) 某元素是否存在 if xxx   Django if xxx is ...

  7. php apache phpmyadmin mysql环境安装

    文件下载: Apache: http://httpd.apache.org/download.cgi PHP,phpMyAdmin,mysql,API下载:http://pan.baidu.com/s ...

  8. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

  9. MySQL系列(四)---引擎

    MySql中的引擎 目录 MySQL系列(一):基础知识大总结 MySQL系列(二):MySQL事务 MySQL系列(三):索引 引擎种类 FEDERATED MRG_MYISAM MyISAM BL ...

  10. year:2017 month:7 day:18

    2017-07-18 JavaScript 1javascript的控制语句 (1) if语句 (2)if(){}else 语句 (3) if(){} else if(){ }语句 (4)switch ...