# @Author : Rocky # @File : IPWeatherObject.py # @Time : 2023/8/16 8:56 import requests class IPQuery: """ 阿里云IP地址查询 https://market.aliyun.com/products/57002003/cmapi021970.html?spm=5176.2020520132.recommend-card.dbottom-suggestion.33e17218GYjWDt#sku=yuncode15970000020 """ def __init__(self, ip): self.appcode = 'd7d63b34b1d54214be446608a57ff0a2' self.host = 'https://c2ba.api.huachen.cn' self.path = '/ip' self.district = None param = 'ip=' + ip url = self.host + self.path + '?' + param # 获取ip的区级和城市信息 headers = {'Authorization': 'APPCODE ' + self.appcode} res = requests.get(url=url, headers=headers) if res.status_code == 200: # 反序列化响应数据 res_data = eval(res.content.decode('utf-8')) if res_data['ret'] == 200: district = res_data['data']['district'] city = res_data['data']['city'] + '市' self.district = district if district else city class WeatherInfo: def __init__(self, city_id): self.appcode = 'd7d63b34b1d54214be446608a57ff0a2' self.headers = {'Authorization': 'APPCODE ' + self.appcode, 'Content-Type': 'application/x-www-form-urlencoded'} self.city_id = city_id def get_city_weather(self): url = "https://aliv18.data.moji.com/whapi/json/alicityweather/condition" # 获取实时天气 data = {'cityId': self.city_id} response = requests.post(url, headers=self.headers, data=data, verify=False) if response.status_code == 200: result = response.json() if result['code'] == 0: # 返回温湿度 return '{} ℃'.format(result['data']['condition']['temp']), '{} %'.format( result['data']['condition']['humidity']) return None, None