Найти в Дзене

Сталкерим по интернету. Python, BS4 и requests.

Здравствуйте! Вы на канале "Интернет сталкер" и сегодня мы будем и вправду сталкерить по интернету. Я расскажу как можно добывать сведения о погоде, не платя ни копейки и не мучаясь с API адресами. Заходим в cmd и устанавливаем библиотеки requests и bs4. Дальше определяемся с сайтом. Я всегда пользуюсь gismeteo и Яндекс погодой, но у gismeteo для каждого региона был свой номер. Это выступает защитой от программистов типа меня, на Яндексе была chapatcha, но оказался сайт у которого не было защиты(если что, я пользуюсь правилом: нет защиты - можно брать, защита есть - не трогай). Это был mail. Вот мой код: from requests import get from bs4 import BeautifulSoup def weather(): f = open('J:/catlinux/location.txt', 'r') region = f.read() f.close() site = 'https://pogoda.mail.ru/prognoz/' url = site + region req=get(url) soup = BeautifulSoup(req.text, "html.parser") divs=soup.findAll("div", {'class': 'information__content__temperature'}) spans = soup.findAll("span", {}) something = list(spans

Здравствуйте! Вы на канале "Интернет сталкер" и сегодня мы будем и вправду сталкерить по интернету. Я расскажу как можно добывать сведения о погоде, не платя ни копейки и не мучаясь с API адресами.

Заходим в cmd и устанавливаем библиотеки requests и bs4. Дальше определяемся с сайтом. Я всегда пользуюсь gismeteo и Яндекс погодой, но у gismeteo для каждого региона был свой номер. Это выступает защитой от программистов типа меня, на Яндексе была chapatcha, но оказался сайт у которого не было защиты(если что, я пользуюсь правилом: нет защиты - можно брать, защита есть - не трогай). Это был mail.

Вот мой код:

from requests import get
from bs4 import BeautifulSoup
def weather():
f = open('J:/catlinux/location.txt', 'r')
region = f.read()
f.close()
site = 'https://pogoda.mail.ru/prognoz/'
url = site + region
req=get(url)
soup = BeautifulSoup(req.text, "html.parser")
divs=soup.findAll("div", {'class': 'information__content__temperature'})
spans = soup.findAll("span", {})
something = list(spans[15])
something = something[2]
if something[1] == '+' or something[0] == '-':
w2 = something[1:4]
else:
w2 = something[1:4]
w1 = list(divs[0].get_text())
if w1[1] == '+' or w1[1] == '-':
w1 = ''.join(w1[1:4])
else:
w1 = ''.join(w1[1:3])
print('It is ' + w1 + ' in ' + region + ' now.')
print('Feels like ' + w2 + '.')
print()

В файле location.txt находится строка с местом где надо узнать погоду, она конкатенируется с адресом сайта, и по этой ссылке мы хапаем содержимое сайта, преобразуем в список, находим номер элементов с нужной инфой, и берём его. Дальше преобразуем в список, и обратно в строку, но не функцией str, а функцией repr. Она обходит стороной все спец. символы. Вырезаем из этого нужную информацию и выводим в консоль.

А на этом всё! Дерзайте, и главное не нарывайтесь на проблемы.