группировка текста на основе тегов в тексте HTML - PullRequest
0 голосов
/ 03 июля 2019

У меня есть текст в формате (сохранение тегов и удаление текста для понимания)

<h2>...</h2>
  <p>...</p>
   .      .
   .      .
  <p>...</p>
<h2>...</h2>
  <ul>...</ul>
     <li> .. </li>
  ...
<h2>...</h2>
   <li> ..</li>

Я пытаюсь использовать scrapy для разделения / группировки текста на основев шапке.Поэтому в качестве первого шага мне нужно получить 3 группы данных из приведенного выше.

from scrapy import Selector 
sentence = "above text in the format"
sel = Selector(text = sentence)
// item = sel.xpath("//h2//text())
item = sel.xpath("//h2/following-sibling::li/ul/p//text()").extract()

Я получаю пустой массив.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 03 июля 2019

У меня есть это решение, сделанное с помощью скрапа

import scrapy
from lxml import etree, html


class TagsSpider(scrapy.Spider):
    name = 'tags'
    start_urls = [
        'https://support.litmos.com/hc/en-us/articles/227739047-Sample-HTML-Header-Code'
    ]

    def parse(self, response):
        for header in response.xpath('//header'):
            with open('test.html', 'a+') as file:
                file.write(
                    etree.tostring(
                        html.fromstring(header.extract()),
                        encoding='unicode',
                        pretty_print=True,
                    )
                )

С помощью которого я получаю заголовки и весь контент внутри них

header

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...