Научитесь парсить веб-страницы с помощью Node.js и безголового Chrome.

Полезные ресурсы

До начала

Вам необходимо установить Node.js 18+ или более позднюю версию.

Я рекомендую вам использовать последнюю версию LTS и часто обновлять ее. Более подробная информация о nodeJS и процессе его установки доступна на официальном сайте.

Если у вас уже есть Node.js, вы можете создать папку проекта.
Зайдите внутрь и выполните эту команду, чтобы установить Puppeteer версии 19.6.2.

npm i puppeteer

Начать процесс

Во-первых, вам нужно открыть браузер и перейти на веб-сайт, который вы хотите удалить.

В этом примере мы будем использовать безголовый режим и сделаем скриншот на Linkedin.

Сначала запускаем Chrome и создаем страницу. Затем мы используем page.goto для навигации по веб-сайту. После загрузки мы сможем сделать скриншот.

Советы: функция скриншота поддерживает множество параметров.

Я использовал путь, но вы также можете сохранить base64 с помощьюencoding: “base64"или принудительно отобразить экран наfullPage: true

Когда процесс завершится, не забудьте закрыть браузер, иначе на вашем компьютере все еще будет работать призрачный процесс.

Войдите в систему и начните удалять некоторые данные

Очень просто, когда у вас есть элемент страницы, вам нужно представить, как манипулировать querySelector или xPath. Вы можете открыть консоль инструментов разработчика и попытаться найти селекторы благодаря document.querySelector() или $x() для xPath. Затем вы можете использовать один из нескольких методов, предлагаемых Puppeteer.

  • page.type(селектор, данные): вы пишете некоторые данные
  • page.click(селектор): вы нажимаете кнопку
  • page.$(селектор) : как querySelector
  • page.$$(селектор): как querySelectorAll
  • page.$x() : для выбора xPath

Теперь мы вошли в LinkedIn. Вы можете воспроизвести те же шаги, чтобы выбрать ввод, ввести название компании и найти некоторых сотрудников, а затем с помощью page.$() вы можете получить доступ к данным, доступным в querySelector.

На этом этапе вы можете использовать некоторые функции, такие как page.$eval(selector, function).

Вы можете оценить непосредственно свой querySelector. Например, если вы хотите извлечь имя в своей функции оценки, вы можете сделать это:

const employeeName = page.$eval(selector, (element) => el.innerText);

Заключение

Это руководство — первый шаг в мире утилизации. Вы можете выполнить более сложные действия, например, заблокировать некоторые бесполезные ресурсы (статические файлы и т. д.) или скрыть обнаружение Puppeteer (поскольку некоторые сайты могут вас заблокировать).

Очень скоро я напишу несколько конкретных материалов о Puppeteer.

Спасибо за чтение, если у вас есть какие-либо вопросы, добавьте комментарий. Не стесняйтесь подписываться на меня, чтобы узнать больше о Puppeteer.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.