热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

查询天气python3可识别输入城市

importurllib.requestimportrefromurllib.requestimportquoteimportastdefurlopen(url):requrlli

import urllib.request
import re
from urllib.request import quote
import ast
def urlopen(url): req = urllib.request.Request(url)
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36")
html = urllib.request.urlopen(req)
html = html.read()
return html
#urlopen 打开链接 并加了heaaders
def nam():
print('请输入城市名字, 比如是深圳市,就只需要输入‘深圳’')
name = input('请输入城市名:')
name = quote(name)
#这里是中文要转成链接代码用 from urllib.request import quote 用这个函数name = quote(name) 就可以了才不会报错
url = 'http://toy1.weather.com.cn/search?cityname={}'.format(name)
#这个是查询接口加上城市名
htm = urlopen(url)
#返回的数据里面会有城市的代码
htm = htm.decode('utf-8')
return htm
#这里返回的是一个字符串 里面有很多
def dia(): daima = nam()
while daima == '([])':
#这个循环是为了判断输入的城市是否正确,比如输入‘城市’ 中国没这个名字的城市就会让你重新输入并且无限循环 直到正确
daima = nam()
#这就是如果输错了就会运行这一行代码并且重新把数据传回daima这个变量,再一次循环对比 如果==([])就说明写错了 需要再输入,如果对了就会进入下一个步骤

daima = re.search(r'("ref":")(\d*?)(~)',daima)
#数据正确就用正则表达式提取需要的城市代码
daima = daima.group(2)
#group(2)这个就是我们需要的 取出来是str类型的 可以直接用
return daima
#然后返回这个城市代码
def cha(dianma):
#现在我们得到代码加入到链接里面就可以访问了
url1 = 'http://www.weather.com.cn/data/sk/{}.html'.format(daima)
data = urlopen(url1)
data = data.decode('utf-8')
datadic = ast.literal_eval(data)
#返回的数据是一个字符串 要转成字典方便取数据
chen = datadic['weatherinfo']['city']
wendu = datadic['weatherinfo']['temp']
feng = datadic['weatherinfo']['WD']
shidu = datadic['weatherinfo']['SD']
time = datadic['weatherinfo']['time']
#这里面就是数据了 可以直接取出来 然后输入
print('城市:'+chen+'\n')
print('温度'+wendu+'\n')
print('风向'+feng+'\n')
print('湿度'+shidu+'\n')
print('时间'+time+'\n')
#输入的数据
daima = dia()
cha(daima)

推荐阅读
  • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
  • 博主使用代理IP来自于网上免费提供高匿IP的这个网站用到的库frombs4importBeautifulSoupimportrandomimporturllib.re ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • Python爬取豆瓣数据实现过程解析
    这篇文章主要介绍了Python爬取豆瓣数据实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值, ... [详细]
  • Scrapy 爬取图片
    1.创建Scrapy项目scrapystartprojectCrawlMeiziTuscrapygenspiderMeiziTuSpiderhttps:movie.douban.c ... [详细]
  • 目录爬虫06scrapy框架1.scrapy概述安装2.基本使用3.全栈数据的爬取4.五大核心组件对象5.适当提升scrapy爬取数据的效率6.请求传参爬虫06scrapy框架1. ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 实现一个通讯录系统,可添加、删除、修改、查找、显示、清空、排序通讯录信息
    本文介绍了如何实现一个通讯录系统,该系统可以实现添加、删除、修改、查找、显示、清空、排序通讯录信息的功能。通过定义结构体LINK和PEOPLE来存储通讯录信息,使用相关函数来实现各项功能。详细介绍了每个功能的实现方法。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • 本文介绍了Foundation框架中一些常用的结构体和类,包括表示范围作用的NSRange结构体的创建方式,处理几何图形的数据类型NSPoint和NSSize,以及由点和大小复合而成的矩形数据类型NSRect。同时还介绍了创建这些数据类型的方法,以及字符串类NSString的使用方法。 ... [详细]
  • 这个问题发生在重新安装系统后,丢失了之前的privatekey等。所以解决方法就是提示的revokeandrequest。到developercenter中找到certificat ... [详细]
  • 前端提高篇(七十):SVG基本使用、基本样式、路径path
    SVG是使用XML来描述二维图形和绘图程序的语言。SVG遵循的是xml的规范,与html5的使用有所区别SVG绘制出来的是矢量图,放大之后不会失真官方文 ... [详细]
author-avatar
蓝色水气球_453
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有