skioe

legacy gadost'

Jun 30th, 2019 (edited)
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.90 KB | None | 0 0
  1. import requests
  2. import bs4
  3. from yandex.Translater import Translater
  4.  
  5. def translate(city): # возвращает перевод города с русского на английский с заменой пробела на тире
  6.     tr = Translater()
  7.     tr.set_key('key')
  8.     tr.set_from_lang('ru')
  9.     tr.set_to_lang('en')
  10.     tr.set_text(city)
  11.    
  12.     return tr.translate().replace(" ", "-")
  13.  
  14.  
  15. def get_weather(city):
  16.  
  17.     city_trnsltd = translate(city)
  18.     if city_trnsltd == "St.-Petersburg": #костыль
  19.         city_trnsltd = city_trnsltd.replace("St.", "Saint")
  20.     else:
  21.         pass
  22.    
  23.     url = "https://yandex.ru/pogoda/{}".format(city_trnsltd)
  24.     response = requests.get(url)
  25.  
  26.     soup = bs4.BeautifulSoup(response.content, "lxml")
  27.  
  28.     try:
  29.         temp = soup.find("span", {"class": "temp__value"}).text + "°C"
  30.  
  31.         try:
  32.             condition = soup.find("div", {"class": "link__condition"}).text
  33.         except:
  34.             condition = "Нет данных :("
  35.  
  36.         try:
  37.             speed = soup.find_all("dd", {"class": "term__value"})[2].text
  38.         except:
  39.             speed = "Нет данных :("
  40.  
  41.         in_town = soup.find("div", {"class": "header-title__title-wrap"}).text
  42.  
  43.         try:
  44.             humidity = soup.find_all("dd", {"class": "term__value"})[3].text
  45.         except:
  46.             humidity = "Нет данных :("
  47.  
  48.         try:
  49.             pressure = soup.find_all("dd", {"class": "term__value"})[4].text
  50.         except:
  51.             pressure = "Нет данных :("
  52.    
  53.         return in_town + ": " + "\n" + "\n" + " Температура: " + temp + "\n" + " Состояние: " + condition + "\n" + " Скорость ветра: " + speed + "\n" + " Влажность: " + humidity + "\n" + " Атмосферное давление: " + pressure
  54.     except:
  55.         return "Город не найден :("
Add Comment
Please, Sign In to add comment