Почему при парсинге сайта выдаёт None (bs4)
Почему при парсинге сайта программа не может найти b-page__container? Вместо этого программа выдаёт None.
Как это исправить?
https://yandex.ru/pogoda/region/225
import requests
from bs4 import BeautifulSoup
link = "https://yandex.ru/pogoda/region/225"
responce = requests.get(link).text
soup = BeautifulSoup(responce, 'lxml')
towns = soup.find("div", class_="b-page__container")
print(towns)
Ответы (1 шт):
Автор решения: user510170
→ Ссылка
Для того, что бы получить данные, вам надо передать словарь headers вместе с запросом, в этом заголовке достаточно передать ключ "Cookie": "j=-h9......". Эти данные берёте во вкладке Network Вашего браузера в Request Headers.
Вот пример рабочего кода, Вам надо только отредактировать headers подставив ваши данные из браузера:
import requests
from bs4 import BeautifulSoup
link = "https://yandex.ru/pogoda/region/225"
headers = {
"Cookie": "ТУТ ДОЛЖНЫ БЫТЬ ВАШИ ДАННЫЕ Cookie из БРАУЗЕРА",
}
session = requests.Session()
session.headers.update(headers)
responce = session.get(link).content
soup = BeautifulSoup(responce, 'html.parser')
regions = soup.find("div", "b-page__container")
place_list = regions.find_all("div", "place-list")
for place in place_list:
regions_names = place.find_all("a")
for a in regions_names:
print(f"Название региона: {a.text}")
Вот, что возвращает этот код:
...
Название региона: Чукотский автономный округ
Название региона: Ямало-Ненецкий автономный округ
Название региона: Ярославская область
