Научитесь парсить веб-страницы с помощью 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 .
Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.