Я проверяю расписание на сайте Medmar и хотел бы разделить маршрут от:
"Pozzuoli » Ischia"
"Pozzuoli - Procida"
до
"DEPARTURE PORT": 'Pozzuoli'
"ARRIVAL PORT": 'Ischia'
"DEPARTURE PORT": 'Pozzuoli'
"ARRIVAL PORT": 'Procida'
Я пробовалразделение текста из списка двумя различными способами в зависимости от того, имеет ли он разделитель «» или «-» между двумя портами.Сначала я ищу «» или «-» и делю строку соответственно.По какой-то причине я получаю повторную ошибку при поиске
re.error: unterminated character set at position 0
Код:
def port_name_regex(port_name, index):
if re.search("[^\x00-\x7f",port_name):
port_name = departure_port = re.split("[^\x00-\x7f]",port_name,1)[index].capitalize
return port_name
else:
port_name = re.split("\w",port_name,1)[index].capitalize
return port_name
medmar_live_departures_table = list(soup.select('li.tratta'))
for li in medmar_live_departures_table:
next_li = li.find_next_sibling("li")
while next_li and next_li.get("data-toggle"):
if next_li.get("class") == ["corsa-yes"]:
medmar_live_departures_data.append({
'DEPARTURE PORT': port_name_regex(li.text, 0),
'ARRIVAL PORT': port_name_regex(li.text, -1),
'DEPARTURE TIME': next_li.strong.text,
'FERRY TYPE': "Traghetto",
'STATUS': "Active",
'OTHER INFO': "Next departure"
})
elif next_li.get("class") == ["corsa-no"]:
medmar_live_departures_data.append({
'DEPARTURE PORT': port_name_regex(li.text, 0),
'ARRIVAL PORT': port_name_regex(li.text, -1),
'DEPARTURE TIME' : next_li.strong.text,
'FERRY TYPE': "Traghetto",
'STATUS': "Cancelled"
})
next_li.find_next_sibling("li")
else:
medmar_live_departures_data.append({
'DEPARTURE PORT': port_name_regex(li.text, 0),
'ARRIVAL PORT': port_name_regex(li.text, -1),
'DEPARTURE TIME' : next_li.strong.text,
'FERRY TYPE': "Traghetto",
'STATUS': "Active"
})
next_li = next_li.find_next_sibling("li")
Как мне решить эту проблему?