Парсинг c помощью Javascript

Рейтинг: 0Ответов: 1Опубликовано: 07.07.2023

Подскажите, пожалуйста, какие функции Javascript Api использовать, чтобы считать данные с веб-страницы? Смысл задачи таков: есть веб-страница с заданным адресом, на ней есть строчка, содержащая некоторое ключевое слово и двоеточие после него. Нужно считать оставшуюся часть строки. Причем было бы хорошо, чтобы функции были не из каких-то редких библиотек, потому что это нужно для разработки макроса в p7 Office в котором даже не все стандартные функции работают. В интернете, к сожалению, я не нашел ничего конкретного. Буду благодарен любым вашим советам и наводкам.

Ответы

▲ 1Принят

Можно попробовать решить это через регулярки

const body = document.body.innerText; //Берем текст со страницы, как пример


//keyWord - то самое ключевое слово
//whereToSearch - область поиска
const getByKeyWord = (keyWord, whereToSearch) => {
  const regex = new RegExp(`${keyWord}:(.*)`, "gim"); //Создаем регулярку

  const result = whereToSearch.match(regex) || []; // проверяем наш текст регуляркой, если все ок то вернется масив из N вхождений искомого слова в формате - искомое_слово: конец_строки

  return result?.map((str) => str.slice(keyWord.length + 1).trim()); //убираем из результата искомое слово и лишние пробелы
};

console.log(getByKeyWord("voluptatibu", body));
<!DOCTYPE html>
<html>

<head>
  <title>Parcel Sandbox</title>
  <meta charset="UTF-8" />
</head>

<body>
  <div id="app">
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Earum distinctio cupiditate eligendi expedita vitae eveniet neque aperiam facere ipsam dolores ipsum explicabo rem repellat quaerat aliquam fuga ea, aspernatur voluptatibus: <b>то что тебе и нужно</b>.
    </p>
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Earum distinctio cupiditate eligendi expedita vitae eveniet neque aperiam facere ipsam dolores ipsum explicabo rem repellat quaerat aliquam fuga ea, aspernatur voluptatibus: <b>то что тебе и нужно 2</b>.
    </p>
  </div>

  <script src="src/index.js"></script>
</body>

</html>