Ваш код не опубликован.И даже после того, как я угадаю, как это исправить, он на самом деле не выполняет то, что вы утверждаете.Но я почти уверен, что знаю, где ошибка в любом случае.
Этот код не возвращает пустую строку, а "
:
text = div.get_text().strip().split(" ", 1)[0].strip()
… и это не из-заstrip
.Потому что, вопреки тому, что вы утверждаете, этот код не включает в себя текст, который вы хотите в первую очередь:
text = div.get_text().strip().split(" ", 1)[0]
… а скорее '"\n'
.Так что, конечно, вычеркивание, которое дает вам пустую строку.
Если вы распечатаете промежуточные фрагменты, вы поймете, почему:
>>> div.get_text()
'\n "\n Text I want \n "\n \nEdit\n\n'
>>> div.get_text().strip()
'"\n Text I want \n "\n \nEdit'
>>> div.get_text().strip().split(" ", 1)
['"\n', ' Text I want \n "\n \nEdit']
>>> div.get_text().strip().split(" ", 1)[0]
'"\n'
>>> div.get_text().strip().split(" ", 1)[0].strip()
'"'
Это выглядит так, как вы на самом деле хочу сделать, это найти текст между первыми двумя "
символами, а затем разделить его на:
>>> div.get_text().strip().split('"', 2)[1].strip()
'Text I want'
Но я также думаю, что вы делаете вещи более сложными, чемони должны быть включены путем включения всего текста-потомка, а не только непосредственного дочернего текста.Если мы не имеем дело с частью Edit
, все, что вам нужно, это просто текст, который вы хотите окружить сложным сочетанием пробелов, новых строк и кавычек ... которые мы можем вырезать сразу:
>>> div.contents[0]
'\n "\n Text I want \n "\n
>>> div.contents[0].strip(' \n"')
'Text I want'