python實現定時顯示天氣預報資訊

2022-05-08 11:30:11 字數 1918 閱讀 2558

from datetime import datetime

import json

import requests

import urllib.request # 需要安裝 urllib 庫

from bs4 import beautifulsoup # 需要安裝 bs4 庫

import os

from apscheduler.schedulers.blocking import blockingscheduler

def get_iciba_everyday_chicken_soup():

url = ''

r = requests.get(url)

all_content = json.loads(r.text) # 獲取到json格式的內容,內容很多,json.loads: 將str轉成dict

english = all_content['content'] # 提取json中的英文雞湯

chinese = all_content['note'] # 提取json中的中文雞湯

everyday_soup = english + '\n' + chinese # 合併需要的字串內容

return everyday_soup # 返回結果

# print(get_iciba_everyday_chicken_soup())

def get_weather(city_pinyin):

# 宣告請求頭,模擬真人操作,防止被反爬蟲發現

#header需要f12抓取下資訊

header =

# 通過傳入的城市名拼音引數來拼接出該城市的天氣預報的網頁位址

#city_pinyin='zhengzhou'

website = "" + city_pinyin + "/"

req = urllib.request.request(url=website, headers=header)

page = urllib.request.urlopen(req)

html = page.read()

soup = beautifulsoup(html.decode("utf-8"), "html.parser")

# html.parser表示解析使用的解析器

nodes = soup.find_all('dd')

tody_weather = [node.text.strip() for node in nodes] # 定義乙個列表,並遍歷nodes

tody_weather[0] = tody_weather[0][:2] # 去除多餘字元

# 去除字串中的空行:

tianqi = " ".join([s for s in tody_weather if s.strip("\n")])

print(tianqi)

return tianqi

# 返回結果

# 呼叫封裝號好的函式獲取天氣預報,引數『zhengzhou』是鄭州的拼音:

# print(get_weather("zhengzhou"))

if __name__ == '__main__':

scheduler = blockingscheduler(timezone="asia/shanghai")

scheduler.add_job(get_weather, 'interval', seconds=3,args=['zhengzhou'])

print('press ctrl+ to exit'.format('break' if os.name == 'nt' else 'c '))

try:

scheduler.start()

except(keyboardinterrupt, systemexit):

pass

4 python開源 scrapy爬蟲天氣預報

獲取資訊 修改items.py如下 import scrapy class tutorialitem scrapy.item define the fields for your item here like name scrapy.field city scrapy.field date scra...

Python3定時簡訊獲得天氣

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

Jquery和雅虎的YQL服務實現天氣預報功能!

yql服務可以實現對網上不同資料來源的query,filter,combine 查詢,過濾,合併 提供類似sql,具體位址如下 當實施查詢的時候,yql服務就會訪問網路上的資料來源,傳輸資料,返回xml或者json形式的資料結果。yql可以使用許多態別的資料來源,包括yahoo web servic...