Scrapy: извлечь свойство из селектора

Прошу прощения за вопрос новичка, но это сводит меня с ума:

Представьте, что у меня есть этот селектор для группы элементов диапазона:

ori=response.xpath("//div[@class='comparison- 
  row']//div[contains(@class,'modern- 
  translation')]//span[contains(@class,'line-mapping')]")

Мне нужно извлечь 2 свойства, а именно идентификатор данных и текст из каждого диапазона

Я делаю:

for r in ori:
    id_n=r.xpath("@data-id").extract()
    text_n=r.xpath("/text()").extract()
    if len(id_n)!=0 and len(text_n)!=0:
       ids.append(id_n)
       text.append(text_n)

Но следующее возвращает ошибку:

text_n=r.xpath("/text()").extract()

Я пытался:

for r in ori:
    n=r.extract()
    print(n) 

У меня такой вывод:

Я останусь дома и буду молиться о Божьем благословении на вашу попытку. Уезжайте завтра и будьте уверены: все, чем я могу вам помочь, вы получите.

Мне нужно извлечь каждый текст

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
134
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно сделать выражение xpath относительно текущего элемента:

text_n = r.xpath("./text()").extract()

Кроме того, if len(id_n)!=0 and len(text_n)!=0: лучше записывается как if id_n and text_n:.

Другие вопросы по теме