Мне нужно создать базу данных со случайным текстом с разных сайтов, чтобы выполнить тесты для моего модуля, который работает с предложениями. Чем больше предложений у меня есть, тем лучше, потому что больше случаев я могу предсказать и покрыть в алгоритмах. Я начал делать это вручную, но мне потребовалось 8 часов, чтобы получить только 500 страниц текста, что не очень эффективно.
Мне интересно, можно ли загрузить сайт в некоторый модуль npm, чтобы я мог получить объект DOM этого веб-сайта, а затем использовать JS для извлечения текста, например. <p>, <h1-6>, <li>
. В веб-браузерах в окне F12
devTools есть доступ к DOM. Можно ли получить доступ к DOM с помощью некоторого настольного пакета npm?
Я знаю, что нет возможности получить доступ к DOM внешнего веб-сайта, загруженного в iframe. Как насчет использования nodeJS с рабочего стола?
Ну, если я правильно понял ваш вопрос, я думаю, что это, похоже, web scrapping
, а также получение элементов DOM и вещей под ним, хорошо, если это так, тогда вы можете использовать модули npm, которые делают материал для веб-лома, тот, который довольно известные модули npm.
1. Cheerio:
его версия jQuery на стороне сервера, если вы знакомы с jQuery, вам будет легко работать, причем ее легкий и гибкий в использовании. В основном после извлечения удаленного контента (ajax-запрос или любой HTTP-запрос), который может быть проанализирован так же, как выбор dom в jQuery, одним из недостатков этого является недостаток в получении динамического контента, произошедшего на веб-сайте или на странице.
2. JSDom:
это самое близкое к безглавому браузеру, который обеспечивает тесное представление на странице или DOM, он использует веб-элементы под своим поясом, чтобы вернуть содержимое на странице, а также возвращает динамический контент, обновленный на странице
web scrapping
- я не знал, что это так называется, спасибо. Наконец-то я понял, что тоже могу сделать это с phantomJS