Веб-скрапинг — одна из моих любимых тем, а с помощью python легко парсить веб-страницы.
в этом я создал приложение, которое даст вам погоду в любом городе, я собираюсь удалить данные из открытого погодного API, который позволяет использовать его до определенных ограничений, для этого вам нужен ключ API, вы можете получить его с этого сайта
позволяет импортировать все необходимые модули
import socket import requests
теперь создайте попытку, кроме блокировки
просто чтобы убедиться, что сайт доступен, программа вернет 200 в качестве статуса, что просто означает, что сайт находится в сети.
используя метод request.get(), мы можем запросить API с помощью ключа API
try: socket.create_connection(("www.google.com",80)) print("u r connected") city = input("enter city name: ") a1 = "http://api.openweathermap.org/data/2.5/weather?" a2 = "q=" +city + "&units=metric" a3 = "&APPID=fa531e4e62b7ffeb91c7ea854ddf347a" api_address = a1+a2+a3 res1 = requests.get(api_address) print(res1) d = res1.json() d1=d['main']['temp'] print("temperature =",d1) except OSError as e: print("issue ",e)
API возвращает много информации в виде результата в формате JSON, подобном этому
{'coord': {'lon': 73.85, 'lat': 18.52}, 'weather': [{'id': 500, 'main': 'Rain', 'description': 'light rain', 'icon': '10n'}], 'base': 'model', 'main': {'temp': 24.83, 'feels_like': 24.56, 'temp_min': 24.83, 'temp_max': 24.83, 'pressure': 1013, 'humidity': 58, 'sea_level': 1013, 'grnd_level': 941}, 'wind': {'speed': 3.22, 'deg': 139}, 'rain': {'3h': 0.19}, 'clouds': {'all': 100}, 'dt': 1577109915, 'sys': {'country': 'IN', 'sunrise': 1577064773, 'sunset': 1577104428}, 'timezone': 19800, 'id': 1259229, 'name': 'Pune', 'cod': 200}
нам нужно отфильтровать его, чтобы получить конкретное значение ‘ d1=d[‘main’][‘temp’] ’, мне интересно узнать температуру Пуны
вывод: температура будет в градусах Цельсия.
temperature = 24.83