Этот парсер , берет название и время , но при запуске кода , ошибка IndexError: list index out of range
import requests
from bs4 import BeautifulSoup as BS
r = requests.get("https://www.vremyanamaza.ru/%D0%94%D0%B5%D1%80%D0%B1%D0%B5%D0%BD%D1%82/%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BD%D0%B0%D0%BC%D0%B0%D0%B7%D0%B0-%D0%94%D0%B5%D1%80%D0%B1%D0%B5%D0%BD%D1%82/9851-mwl07")
html = BS(r.content,"html.parser")
for el in html.select('.item'):
title = el.select(".prayerName")
time = el.select(".prayerTime")
print(title[0].text + "-" + time[0].text)
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Добавьте проверку на пустой элемент:
import requests
from bs4 import BeautifulSoup as BS
r = requests.get("https://www.vremyanamaza.ru/%D0%94%D0%B5%D1%80%D0%B1%D0%B5%D0%BD%D1%82/%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BD%D0%B0%D0%BC%D0%B0%D0%B7%D0%B0-%D0%94%D0%B5%D1%80%D0%B1%D0%B5%D0%BD%D1%82/9851-mwl07")
html = BS(r.content,"html.parser")
for el in html.select('.item'):
title = el.select(".prayerName")
time = el.select(".prayerTime")
if not title or not time:
continue
print(title[0].text + "-" + time[0].text)
Автор решения: gil9red
→ Ссылка
Аналогично другому ответу, но с использованием select_one, вместо select:
import requests
from bs4 import BeautifulSoup as BS
r = requests.get("https://www.vremyanamaza.ru/%D0%94%D0%B5%D1%80%D0%B1%D0%B5%D0%BD%D1%82/%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BD%D0%B0%D0%BC%D0%B0%D0%B7%D0%B0-%D0%94%D0%B5%D1%80%D0%B1%D0%B5%D0%BD%D1%82/9851-mwl07")
html = BS(r.content,"html.parser")
for el in html.select('.item'):
title = el.select_one(".prayerName")
time = el.select_one(".prayerTime")
if not title or not time:
continue
print(title.text + "-" + time.text)