Webscraper в node.js, JS модифицирует DOM - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь написать Webscraper, чтобы получить некоторые коммерческие предложения.Проблема заключается в том, что в современном веб-дизайне большинство веб-сайтов используют JavaScript для модификации DOM (обычно с использованием React, Angular или даже просто некоторых jQuery).Проблема в том, что, если я собираю какой-то сайт с помощью пакета request node.js и передаю html-код в cheerio, то я просто не могу разобрать код и получить необходимую информацию.Вместо этого я вижу только некоторые компоненты React.js ¯_ ¯ _ / ¯. Любые ресурсы по этой теме будут полезны, заранее спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Поскольку пакет request не выполнит ни один из сценариев JavaScript на странице.Он просто загрузит HTML как есть.Если вы хотите видеть реальную страницу, как это делает браузер, вам придется создать анализатор javascript, который выполняет весь код javascript в том состоянии, в котором вы этого хотите.

К счастью, здесь есть несколько других опций:

  • Вы можете взглянуть на инструменты разработчика на веб-сайте, который вы хотите просмотреть, и попытаться найти запросы xhr, которые выбирают нужные вам данные.Затем вы можете вызвать этот URL-адрес напрямую.

  • Вы можете использовать очистку браузера без заголовка, например PhantomJS или CasperJS .Это пакеты, которые будут пытаться модифицировать загруженный dom как можно лучше с помощью включенных ресурсов javascript.

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