Как получить данные между двумя строками на HTML-странице - PullRequest
0 голосов
/ 27 июня 2018

У меня есть несколько HTML-страниц, которые выглядят так:

Заголовок

Введение

Содержание:

option1. Art

option2. Спорт

OPTION3. Танец

Инструкция по выбору

option1. Art

а. акварельные краски описание б. Картина маслом описание с. акриловая живопись описание

option2. Спорт

а. Баскетбол описание б. Крикет описание с. Ножной мяч Описание

OPTION3. Dance

а. Брейк-данс

Весь этот контент хранится в разных HTML-форматах на каждой HTML-странице. Я хочу собрать весь текст под опцией «Спорт» на каждой странице. (Есть ли в любом случае, что я могу достичь этого, кроме выяснения xpaths, потому что структура каждой HTML-страницы отличается).

Пожалуйста, помогите. Спасибо.

Пример HTML:

<Document>
<TYPE>
<SEQUENCE>
<FILENAME>
<DESCRIPTION>
<TEXT>
<HTML>
<HEAD>
</HEAD>

<P style="font-family:times;;margin-left:10.0pt;text-indent:-10.0pt;"><FONT SIZE=2><B>

<!-- COMMAND=STYLE_ADDED,"margin-left:10.0pt;text-indent:-10.0pt;" -->

option 1. Art history: </B></FONT></P>

<P style="font-family:times;"><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The nature of art has been described by philosopher Richard Wollheim as "one of the most elusive of the traditional problems of human culture".[19] Art has been defined as a vehicle for the expression or communication of emotions and ideas </FONT></P>

<P style="font-family:times;;margin-left:10.0pt;text-indent:-10.0pt;"><FONT SIZE=2><B>

<!-- COMMAND=STYLE_ADDED,"margin-left:10.0pt;text-indent:-10.0pt;" -->

option 2. Sports division : </B></FONT></P>

<P style="font-family:times;"><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hundreds of sports exist, from those between single contestants, through to those with hundreds of simultaneous participants, either in teams or competing as individuals. In certain sports such as racing, many contestants may compete, simultaneously or consecutively, with one winner; in others, the contest (a match) is between two sides, each attempting to exceed the other.</FONT></P>

<P style="font-family:times;;margin-left:10.0pt;text-indent:-10.0pt;"><FONT SIZE=2><B>

<!-- COMMAND=STYLE_ADDED,"margin-left:10.0pt;text-indent:-10.0pt;" -->

option 3. Dance group: </B></FONT></P>

<P style="font-family:times;"><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An important distinction is to be drawn between the contexts of theatrical and participatory dance,[4] although these two categories are not always completely separate; both may have special functions, </FONT></P>

1 Ответ

0 голосов
/ 27 июня 2018

Ну, я бы использовал здесь jQuery .text () , поскольку он, кажется, делает именно то, что вы хотите (показывает только текстовое содержимое всех выбранных узлов).

Кроме этого, это просто вопрос выбора правильных элементов, поэтому нам нужно знать, какой «раздел» выбрать. Может быть что-то вроде:

$("P:contains('option 2')").nextUntil("p:contains('option 3')").text()

console.log($("P:contains('option 2')").nextUntil("p:contains('option 3')").text())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="scott">
<P style="font-family:times;;margin-left:10.0pt;text-indent:-10.0pt;"><FONT SIZE=2><B>

<!-- COMMAND=STYLE_ADDED,"margin-left:10.0pt;text-indent:-10.0pt;" -->

option 1. Art history: </B></FONT></P>

<P style="font-family:times;"><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The nature of art has been described by philosopher Richard Wollheim as "one of the most elusive of the traditional problems of human culture".[19] Art has been defined as a vehicle for the expression or communication of emotions and ideas </FONT></P>



<P style="font-family:times;;margin-left:10.0pt;text-indent:-10.0pt;"><FONT SIZE=2><B>

<!-- COMMAND=STYLE_ADDED,"margin-left:10.0pt;text-indent:-10.0pt;" -->

option 2. Sports division : </B></FONT></P>

<P style="font-family:times;"><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hundreds of sports exist, from those between single contestants, through to those with hundreds of simultaneous participants, either in teams or competing as individuals. In certain sports such as racing, many contestants may compete, simultaneously or consecutively, with one winner; in others, the contest (a match) is between two sides, each attempting to exceed the other.</FONT></P>

<div>some other random stuff here.</div>

<P style="font-family:times;;margin-left:10.0pt;text-indent:-10.0pt;"><FONT SIZE=2><B>

<!-- COMMAND=STYLE_ADDED,"margin-left:10.0pt;text-indent:-10.0pt;" -->

option 3. Dance group: </B></FONT></P>

<P style="font-family:times;"><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An important distinction is to be drawn between the contexts of theatrical and participatory dance,[4] although these two categories are not always completely separate; both may have special functions, </FONT></P>

</div>
...