xpath вложенный список ul - PullRequest
       8

xpath вложенный список ul

0 голосов
/ 07 декабря 2018

Я бьюсь головой о стену, возможно, это что-то простое, чего мне не хватает.

У меня есть неупорядоченный список HTML (ul), подобный следующему:

<ul>
  <li>Elm 1</li>
  <li>Elm 2 - with children
    <ul>
      <li>Nested Elm</li>
      <li>Another Elm</li>
    </ul>
  </li>
</ul>

Используя xpath (версия 1, совместимая с Scrapy), как мне получить текст из всех элементов li, включая вложенный?

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Попробуйте с помощью простого селектора xpath:

from scrapy.selector import Selector
selector = Selector(text="""
<ul>
  <li>Elm 1</li>
  <li>Elm 2 - with children
    <ul>
      <li>Nested Elm</li>
      <li>Another Elm</li>
    </ul>
  </li>
</ul>""")
print(selector.xpath('//li/text()').extract())

Это выводит:

['Elm 1', 'Elm 2 - with children\n    ', 'Nested Elm', 'Another Elm', '\n  ']
0 голосов
/ 07 декабря 2018

Если вам нужен xpath, используйте response.xpath('//ul//li/text()').extract().Если вы можете использовать CSS, он короче: response.css('ul li::text').extract()

...