С учетом предоставленного вами текста, указанная вами команда должна была вернуть следующее:
['"Rest_of_text"']
Проблема может возникнуть, если перед тегом strong
есть пробел, например ::
<div> <strong>"Beginning_of_text"</strong>"Rest_of_text"</div>
В этом случае, если вы выполните ту же команду, вы получите следующее:
[' ', '"Rest_of_text"']
Но если после тега strong
ничего нет, вы получите это:
[' ']
Лучший способ справиться со всеми известными мне делами - это сделать следующее:
>>> full_text = ''.join(response.xpath('//div//text()').extract())
>>> before_strong, after_strong = full_text.split(response.css('strong::text').extract_first())
Таким образом, в предоставленном вами тексте before_strong
будет равен ''
, а after_strong
будет равен '"Rest_of_text"'
, что, по-видимому, является тем, что вы хотите получить.