查詢天氣 python3可識別輸入城市

2021-08-29 14:06:45 字數 1806 閱讀 6705

import urllib.request

import re

from urllib.request import quote

import ast

def urlopen(url):

req = urllib.request.request(url)

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 = ''.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 = ''.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)

Python3爬蟲 自動查詢天氣並實現語音播報

要獲取本機ip,這裡有乙個很簡單的辦法,就是開啟這個網頁 開啟之後就能看到我們的ip位址和所在地理位置資訊了。因為我們可以請求一下這個網頁,然後對返回的結果進行一下解析,就能得到我們想要的結果了。如下 1 2 version python3.5 3author onion 4site 5time 2...

Python3定時簡訊獲得天氣

python環境為 python3 註冊後即可使用免費版本的服務 twilio記得要在控制台獲得乙個手機號才能設定相應的資訊。終端執行如下指令 pip3 install twilio 設定心知天氣的apikey apikey 此處為私鑰 設定twilio賬戶資訊 twilio account sid...

Python3爬蟲之自動查詢天氣並實現語音播報

1 get ip.py 要獲取本機ip,這裡有乙個很簡單的辦法,就是開啟這個網頁 開啟之後就能看到我們的ip位址和所在地理位置資訊了。因為我們可以請求一下這個網頁,然後對返回的結果進行一下解析,就能得到我們想要的結果了。如下 import re import requests 獲取本機ip和地理位置...