Surprise Discount: Наслаждайтесь 90% скидки Ваша подписка!

  • Цены
  • Документация
RU
Контакт

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Продукт

Браузер с защитой от отпечатков пальцев
Nstbrowser RPA
Обход Cloudflare
Browserless
Веб-разблокировщик

Решение

Облачный браузер для защиты от отпечатков пальцев
Управление несколькими аккаунтами
Веб-скрапинг
Обнаружение антиботов

Ресурс

Цены
Скачать
Торговая площадка RPA
Партнерская программа
Партнеры
Блоги
Примечания к выпуску

Поддерживать

Контакт

Документация

Юридический

Условия
политика конфиденциальности
Политика использования файлов cookie

ПродуктРешениеРесурсПоддерживатьЮридический

ПродуктРешениеРесурс

ПоддерживатьЮридический

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Назад к блогу
безголовый браузер
Headless Browser

Безголовый браузер: как запустить его в Puppeteer?

С помощью headlesschrome парсинг веб-страниц стал проще! Что такое безголовый браузер? Почему Puppeteer подходит для парсинга веб-страниц? Узнайте конкретную информацию из этого руководства.
Jul 18, 2024Luke Ulyanov

Что такое безголовый браузер?

Мы все знаем, что пользовательский интерфейс (UI) является самой важной частью любого программного обеспечения. Таким образом, слово "безголовый" в "безголовом браузере" означает, что им действительно не хватает одного ключевого элемента, а именно графического пользовательского интерфейса (GUI).

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

Вместо этого инженеры по тестированию программного обеспечения предпочитают использовать такие интерфейсы, как "командная строка", где команды обрабатываются в виде текстовых строк.

Как обнаружить безголовый Chrome?
Вам понадобится анти-детекционный браузер.

Примеры безголовых браузеров

  • Headlesschrome
  • Chromium
  • Firefox Headless
  • HTML Unit
  • Apple Safari (Webkit)
  • Zombie.JS
  • PhantomJS
  • Splash

Почему Puppeteer лучше всего подходит для веб-скрапинга?

Puppeteer — это открытая библиотека Node.js, разработанная Google, которая предоставляет высокоуровневый API для управления безголовым Chrome или Chromium браузером. Вот 7 преимуществ, которые объясняют, почему разработчики предпочитают использовать его для веб-скрапинга.

1. Автоматизация безголового Chrome

Puppeteer управляет безголовой версией Google Chrome, что означает, что он может работать без графического пользовательского интерфейса. Это позволяет быстрее и эффективнее выполнять скрапинг, поскольку уменьшается нагрузка, связанная с рендерингом полного окна браузера.

2. Выполнение JavaScript

Многие современные сайты сильно зависят от JavaScript для динамической загрузки контента. Традиционным инструментам скрапинга часто трудно работать с такими сайтами. Однако Puppeteer может выполнять JavaScript, как настоящий браузер, обеспечивая полную загрузку и доступность всего динамического контента для скрапинга.

3. Высококачественный API

Puppeteer предоставляет высококачественный API, который позволяет точно контролировать браузер. Это включает в себя такие действия, как нажатие кнопок, заполнение форм и навигация между страницами, что особенно важно для скрапинга сложных сайтов.

4. Автоматические скриншоты

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

5. Кросс-браузерное тестирование

Puppeteer поддерживает кросс-браузерное тестирование, что означает, что вы можете тестировать и скрапировать сайты в разных браузерах (например, Chrome и Firefox). Эта гибкость обеспечивает надежность ваших скриптов скрапинга и их способность работать в различных сетевых средах.

6. Сообщество и расширения

Puppeteer имеет сильное сообщество и хорошо интегрируется с другими инструментами, такими как TeamCity, Jenkins и TravisCI. Это облегчает поиск поддержки и расширений для улучшения задач скрапинга.

7. Имитация взаимодействий с пользователем

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

Лучшее решение для веб-скрапинга - бесплатный Nstbrowser

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

Беспрепятственный доступ к 99.9% незаблокированных сайтов.
Есть ли у вас хорошие идеи или вопросы о веб-скрейпинге и Browserless?
Посмотрите чем делятся другие разработчики в Discord и Telegram!

Как использовать Puppeteer для скрапинга сайтов?

Теперь я покажу вам, как выполнить скрапинг с помощью Nstbrowserless!

Что это значит?

Другими словами, нам нужно использовать Nstbrowser, анти-детекционный браузер, и настроить безголовый режим в Docker-контейнере для скрапинга веб-данных.

Для примера возьмем скрапинг ссылок на видео на странице Explore на главной странице TikTok:

Вам также может понравиться: Как использовать Playwright для скрапинга аватаров.

Шаг первый: Анализ страницы

Нам нужно:

  1. Перейти на главную страницу TikTok.
  2. Открыть консоль элементов и найти элемент страницы Explore. Этот элемент представляет собой тег ссылки a с атрибутом data-e2e="nav-explore".
Анализ страницы

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

Мы можем увидеть, что целевые данные находятся в элементе списка с атрибутом data-e2e="explore-item-list", который содержит элементы div.

Каждый элемент видео обозначается data-e2e="explore-item", и нужная нам ссылка на видео находится в атрибуте href тега a внутри div.

Элемент видео

После успешного определения нужных элементов можно переходить к скрапингу:

Шаг второй: Использование Nstbrowserless, для чего необходимо предварительно установить и запустить Docker.

Shell Copy
# Загрузка образа
docker pull nstbrowser/browserless:0.0.1-beta
# Запуск nstbrowserless
docker run -it -e TOKEN=xxx -e SERVER_PORT=8848 -p 8848:8848 --name nstbrowserless nstbrowser/browserless:0.0.1-beta

Шаг третий: Кодирование (Python-Pyppeteer)

Теперь нужно настроить Nstbrowser на безголовый режим

Python Copy
import json
from urllib.parse import urlencode
from pyppeteer import launcher


async def main():
    config = {
        "once": True,
        "headless": True,  # поддерживает: true или false
        "autoClose": True,
        "args": ["--disable-gpu", "--no-sandbox"],  # Параметры браузера должны быть в виде списка
        "fingerprint": {
            "name": 'tiktok_scraper',
            "platform": 'windows',  # поддерживает: windows, mac, linux
            "kernel": 'chromium',  # поддерживает только: chromium
            "kernelMilestone": '120',
            "hardwareConcurrency": 8,  # поддерживает: 2, 4, 8, 10, 12, 14, 16
            "deviceMemory": 8,  # поддерживает: 2, 4, 8
        },
    }
    query = {
        'config': json.dumps(config)
    }
    browser = await launcher.connect(
        browserWSEndpoint=f"ws://127.0.0.1:8848/ws/connect?{urlencode(query)}"
    )
    page = await browser.newPage()
    await page.goto('chrome://version')
    await page.screenshot({'path': 'chrome_version.png'})
    await browser.close()


if __name__ == "__main__":
    import asyncio

    asyncio.run(main())

После выполнения этого кода вы можете увидеть следующую информацию на странице chrome://version:

Безголовые параметры

Добавление параметра --headless в команду запуска ядра указывает, что ядро работает в безголовом режиме.

Полный код:

Python Copy
import json
from urllib.parse import urlencode
from pyppeteer import launcher


async def main():
    config = {
        "once": True,
        "headless": True,  # поддерживает: true или false
        "autoClose": True,
        "args": ["--disable-gpu", "--no-sandbox"],  # Параметры браузера должны быть в виде списка
        "fingerprint": {
            "name": 'tiktok_scraper',
            "platform": 'windows',  # поддерживает: windows, mac, linux
            "kernel": 'chromium',  # поддерживает только: chromium
            "kernelMilestone": '120',
            "hardwareConcurrency": 8,  # поддерживает: 2, 4, 8, 10, 12, 14, 

16
            "deviceMemory": 8,  # поддерживает: 2, 4, 8
        },
    }
    query = {
        'config': json.dumps(config)
    }
    browser = await launcher.connect(
        browserWSEndpoint=f"ws://127.0.0.1:8848/ws/connect?{urlencode(query)}"
    )
    page = await browser.newPage()
    try:
        await page.goto('https://www.tiktok.com/explore')
        await page.waitForSelector('[data-e2e="explore-item-list"]')
        await page.waitFor(3000)
        ul_element = await page.querySelector('[data-e2e="explore-item-list"]')
        li_elements = await page.querySelectorAll('[data-e2e="explore-item"]')
        hrefs = []
        if li_elements:
            s = []
            for li in li_elements:
                a_element = await li.querySelector('[data-e2e="explore-item"] div a')
                if a_element:
                    href = await page.evaluate('(element) => element.getAttribute("href")', a_element)
                    if href:
                        print(href)
                        hrefs.append(href)
    finally:
        await browser.close()


if __name__ == "__main__":
    import asyncio

    asyncio.run(main())

Результат скрапинга:

Результат скрапинга

На данный момент мы завершили операцию по скрапингу ссылок на видео TikTok с использованием Nstbrowserless. После получения ссылок вы можете выполнить любые нужные действия, например, сохранить их, скачать видео или перенаправить на воспроизведение.

Конечно, это был очень простой пример. Если вы хотите скрапировать больше данных, используйте Nstbrowser для исследования и операций, чтобы легко выполнить эту задачу.

Всегда ли хорош безголовый Chrome?

Хотя безголовый браузер важен для веб-скрапинга и автоматизации, он не всегда идеален. Перед использованием тщательно рассмотрите следующие преимущества и недостатки:

Преимущества:

  1. Безголовый Chrome более эффективен при извлечении определенных данных с целевых сайтов (например, ценообразование продуктов конкурентов).
  2. Безголовые браузеры быстрее обычных браузеров, так как они загружают CSS и JavaScript быстрее и не требуют открытия и рендеринга HTML.
  3. Безголовые браузеры экономят время разработчиков, например, при выполнении юнит-тестов изменений кода (для мобильных и настольных устройств), которые можно выполнять через командную строку.

Недостатки:

  1. Операции безголовых браузеров ограничены фоновыми задачами, что означает, что они не могут решать задачи интерфейса (например, создание снимков экрана GUI).
  2. Безголовые браузеры увеличивают скорость, но иногда это сопровождается проблемами, например, отладка становится сложнее.

Ключевые выводы

Безголовый Chrome предоставляет множество преимуществ для процесса веб-скрапинга, и его можно настроить для автоматизации всего несколькими строками кода. Он минимизирует использование памяти, идеально обрабатывает JavaScript и работает в среде без GUI.

В этом руководстве вы узнали:

  1. Что такое безголовый браузер?
  2. Преимущества Puppeteer для веб-скрапинга
  3. Подробные шаги веб-скрапинга с Puppeteer

Кроме того, Nstbrowser позволяет легко избежать обнаружения ботов, разблокировать сайты и упростить процесс веб-скрапинга и автоматизации.

Начните бесплатное использование Nstbrowser прямо сейчас!

Больше
Как использовать Browserless от Nstbrowser для автоматического решения капчи Cloudflare Turnstile (2025)
BrowserlessCloudflare BypassHeadless Browser
Как использовать Browserless от Nstbrowser для автоматического решения капчи Cloudflare Turnstile (2025)
Узнайте, как обойти Cloudflare Turnstile, используя сервис Browserless от Nstbrowser и Puppeteer. Это руководство проведет вас через настройку, реализацию и преимущества автоматизации задач веб-скрейпинга, обеспечивая соответствие требованиям и эффективность.
Mar 07, 2025Luke Ulyanov
Как обойти защиту Cloudflare 5s с помощью Browserless от Nstbrowser (2025)
BrowserlessCloudflare BypassHeadless Browser
Как обойти защиту Cloudflare 5s с помощью Browserless от Nstbrowser (2025)
Узнайте, как обойти 5-секундный вызов Cloudflare с помощью сервиса Browserless от Nstbrowser и Puppeteer. Это руководство проведет вас через настройку, реализацию и преимущества автоматизации задач веб-скрапинга, обеспечивая соответствие и эффективность.
Mar 06, 2025Robin Brown
Используйте Docker-образ Nstbrowser для автоматической постановки лайков на TikTok
Headless Browser
Как использовать Docker-образ Nstbrowser для автоматической постановки лайков на TikTok?
Это руководство демонстрирует, как использовать Docker-образ Nstbrowser для автоматической постановки лайков на TikTok.
Jan 08, 2025Robin Brown
docker-скрейп-youtube
Headless Browser
Как использовать Docker-образ Nstbrowser для скачивания видео с YouTube?
В этом руководстве используется образ Docker Nstbrowser для демонстрации извлечения ссылок на видео YouTube
Jan 08, 2025Luke Ulyanov
браузер без головы, browserless
Headless Browser
Тестирование браузера без графического интерфейса: Что это такое и как это сделать?
Тестирование веб-приложений в браузере без графического интерфейса – это более быстрый, надежный и эффективный способ. Читайте этот блог и найдите подробное руководство по тестированию в браузере без графического интерфейса.
Sep 12, 2024Vasilisa Samsonova
безголовый браузер
Headless Browser
Безголовый браузер: как запустить его в Puppeteer?
С помощью headlesschrome парсинг веб-страниц стал проще! Что такое безголовый браузер? Почему Puppeteer подходит для парсинга веб-страниц? Узнайте конкретную информацию из этого руководства.
Jul 18, 2024Luke Ulyanov
Каталог