Я использую BeautifulSoup и разбираю некоторые HTML-файлы.
Я получаю определенные данные из каждого HTML (используя цикл for) и добавляю эти данные в определенный список.
Проблема в том, что некоторые HTML-файлы имеют другой формат (и в них нет данных, которые мне нужны) .
Итак, я пытался использовать обработку исключений и добавить значение null
в список (я должен сделать это, поскольку важна последовательность данных).
Например, у меня есть такой код:
soup = BeautifulSoup(links)
dlist = soup.findAll('dd', 'title')
# I'm trying to find content between <dd class='title'> and </dd>
gotdata = dlist[1]
# and what i want is the 2nd content of those
newlist.append(gotdata)
# and I add that to a newlist
а некоторые ссылки не имеют их <dd class='title'>
, поэтому я хочу null
вместо этого добавить строку в список.
Появляется ошибка:
list index out of range.
Я попытался добавить несколько таких строк:
if not dlist[1]:
newlist.append('null')
continue
Но не получается. Он все еще показывает ошибку:
list index out of range.
Что мне с этим делать? Стоит ли использовать обработку исключений? или есть способ попроще?
Какие-либо предложения? Любая помощь была бы действительно замечательной!
источник
None
он явно чище, OP хочет'null'
в этом случае.У вас есть два варианта; либо обработайте исключение, либо проверьте длину:
или
Используйте первое, если часто нет второго предмета, второе, если иногда нет второго предмета.
источник
Достаточно троичного. изменение:
к
это более короткий способ выражения
источник
При обращении к ThiefMaster ♦ иногда мы получаем ошибку со значением, указанным как '\ n' или null, и выполняем действия, необходимые для обработки ValueError:
Обработка исключения - это лучший способ
источник
источник
Для всех, кому интересен более короткий путь:
Но для лучшей производительности я предлагаю использовать
False
вместо'null'
, тогда будет достаточно однострочного теста:источник