用API爬取天气预报数据

import requests
import numpy
import re
import time
# 加载pymongo
import pymongo

client = pymongo.MongoClient('localhost',27017)
book_weather = client['weather']
sheet_weather = book_weather['sheet_weather_3']
url = 'https://cdn.heweather.com/china-city-list.txt'
strhtml = requests.get(url)
strhtml.encoding = 'utf-8'
data = strhtml.text

data1 = data.split('\n')
for i in range(6):
    data1.remove(data1[0])

for item in data1:
   # url = 'https://free-api.weather.com/v5/forecast?city='+ item[0:11] +'&key=yourownkey'
   url = 'https://free-api.heweather.net/s6/weather/forecast?location={}&key=yourownkey'.format(item[1:14])
   strhtml = requests.get(url)
   # print(strhtml)
   time.sleep(1)
   dic = strhtml.json()
    # 向表写入一条数据
   sheet_weather.insert_one(dic)

import  pymongo
client = pymongo.MongoClient('localhost',27017)
book_weather = client['weather']
sheet_weather = book_weather['sheet_weather_3']


查询未来三天最低气温低于5度的地点

import  pymongo
client = pymongo.MongoClient('localhost',27017)
book_weather = client['weather']
sheet_weather = book_weather['sheet_weather_3']

for item in sheet_weather.find():
    for i in range(3):
       tmp = item['HeWeather6'][0]['daily_forecast'][i]['tmp_min']
       sheet_weather.update_one({'_id': item['_id']},
                                 {'$set': {'HeWeather6.0.daily_forecast.{}.tmp_min'.format(i): int(tmp)}})

        #sheet_weather.find_one_and_delete({'_id':item['_id']},{'HeWeather6.0.daily_forecast.{}.tmp_min'})

for item in sheet_weather.find({'HeWeather6.0.daily_forecast.tmp_min':{'$gt':5}}):
    print(item['HeWeather6'][0]['basic']['location'])



  • $lt, $lte, $gt, $gte 分别表示< , <=, >, >=

你可能感兴趣的:(用API爬取天气预报数据)