Я просмотрел источник, и не у каждого tr в таблице есть данные, которые вы ищете. Если вы наблюдаете только с классом r1, r2 и т. Д., У вас есть нужные данные. У некоторых только один тд. Итак, доступен только td [0]. Вот почему вы получаете IndexError
Также я думаю, что вы, возможно, неправильно указали список. Я пытался исправить это как можно больше.
import requests
from bs4 import BeautifulSoup
r=requests.get('https://shop.caremar.it/it/prossime-partenze/')
soup=BeautifulSoup(r.text,'html.parser')
caremar_live_departures_table = list(soup.select('.table-booking-history tr[class*="r"]'))
caremar_live_departures_data = []
for tr in caremar_live_departures_table:
td = tr.select('td')
caremar_live_departures_data.append({
'DEPARTURE PORT': td[0].text.strip(),
'ARRIVAL PORT': td[1].text.strip(),
'DEPARTURE TIME': td[3].text.strip(),
'ARRIVAL TIME': td[5].text.strip(),
'FEERY TYPE': td[2].text.strip(),
'STATUS': td[6].text.strip()
})
print(caremar_live_departures_data)
выход
[{'DEPARTURE PORT': 'Procida', 'ARRIVAL PORT': 'Ischia', 'DEPARTURE TIME': '23:00', 'ARRIVAL TIME': '23:30', 'FEERY TYPE': 'Traghetto', 'STATUS': 'Chiuso'}, {'DEPARTURE PORT': 'Ischia', 'ARRIVAL PORT': 'Procida', 'DEPARTURE TIME': '02:30', 'ARRIVAL TIME': '02:45', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Ischia', 'ARRIVAL PORT': 'Pozzuoli', 'DEPARTURE TIME': '02:30', 'ARRIVAL TIME': '03:30', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Procida', 'ARRIVAL PORT': 'Pozzuoli', 'DEPARTURE TIME': '03:10', 'ARRIVAL TIME': '03:30', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Pozzuoli', 'ARRIVAL PORT': 'Procida', 'DEPARTURE TIME': '04:10', 'ARRIVAL TIME': '05:10', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Pozzuoli', 'ARRIVAL PORT': 'Ischia', 'DEPARTURE TIME': '04:10', 'ARRIVAL TIME': '05:40', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Procida', 'ARRIVAL PORT': 'Ischia', 'DEPARTURE TIME': '04:40', 'ARRIVAL TIME': '05:40', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Napoli (Porta di Massa)', 'ARRIVAL PORT': 'Capri', 'DEPARTURE TIME': '05:35', 'ARRIVAL TIME': '06:25', 'FEERY TYPE': 'TMV', 'STATUS': ''}, {'DEPARTURE PORT': 'Napoli (Porta di Massa)', 'ARRIVAL PORT': 'Procida', 'DEPARTURE TIME': '06:15', 'ARRIVAL TIME': '07:15', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Napoli (Porta di Massa)', 'ARRIVAL PORT': 'Ischia', 'DEPARTURE TIME': '06:15', 'ARRIVAL TIME': '07:55', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Procida', 'ARRIVAL PORT': 'Napoli (Molo Beverello)', 'DEPARTURE TIME': '06:35', 'ARRIVAL TIME': '07:05', 'FEERY TYPE': 'Aliscafo', 'STATUS': ''}, {'DEPARTURE PORT': 'Capri', 'ARRIVAL PORT': 'Napoli (Porta di Massa)', 'DEPARTURE TIME': '06:40', 'ARRIVAL TIME': '08:00', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Ischia', 'ARRIVAL PORT': 'Procida', 'DEPARTURE TIME': '06:45', 'ARRIVAL TIME': '07:00', 'FEERY TYPE': 'Aliscafo', 'STATUS': ''}, {'DEPARTURE PORT': 'Ischia', 'ARRIVAL PORT': 'Napoli (Molo Beverello)', 'DEPARTURE TIME': '06:45', 'ARRIVAL TIME': '07:50', 'FEERY TYPE': 'Aliscafo', 'STATUS': ''}, {'DEPARTURE PORT': 'Capri', 'ARRIVAL PORT': 'Sorrento', 'DEPARTURE TIME': '07:00', 'ARRIVAL TIME': '07:25', 'FEERY TYPE': 'TMV', 'STATUS': ''}, {'DEPARTURE PORT': 'Procida', 'ARRIVAL PORT': 'Napoli (Molo Beverello)', 'DEPARTURE TIME': '07:10', 'ARRIVAL TIME': '07:50', 'FEERY TYPE': 'Aliscafo', 'STATUS': ''}, {'DEPARTURE PORT': 'Ischia', 'ARRIVAL PORT': 'Procida', 'DEPARTURE TIME': '07:20', 'ARRIVAL TIME': '07:50', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Ischia', 'ARRIVAL PORT': 'Pozzuoli', 'DEPARTURE TIME': '07:20', 'ARRIVAL TIME': '08:30', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Procida', 'ARRIVAL PORT': 'Ischia', 'DEPARTURE TIME': '07:25', 'ARRIVAL TIME': '07:55', 'FEERY TYPE': 'Traghetto', 'STATUS': ''}, {'DEPARTURE PORT': 'Napoli (Molo Beverello)', 'ARRIVAL PORT': 'Procida', 'DEPARTURE TIME': '07:30', 'ARRIVAL TIME': '08:05', 'FEERY TYPE': 'Aliscafo', 'STATUS': ''}]