Я использую селектор Scrapy для извлечения полей из html
xpath = /html/body/path/to/element/text()
Это похоже на вопрос scrapy получить текст n-го ребенка того же класса и следуя документации, мы можем использовать метод .getall()
, чтобы получить все элементы и выбрать в списке указанный c один.
selected_list = Selector(text=soup.prettify()).xpath(xpath).getall()
Можно ли напрямую указать, какой n-й элемент выбрать в самом xpath? ? Примерно так:
xpath = /html/body/path/to/element/text(2) #to select 3 child text
Пример
<body>
<div>
<i class="ent_sprite remind_icon">
</i>
text that needs to be
</div>
</body>
Результат response.xpath('/body/div/text()').getall()
состоит из 2 элементов
'\n'
'text that needs to be'