1. Введение
В современную быстро развивающуюся эпоху Интернета автоматизированное тестирование и сбор данных становятся все более важными. Puppeteer-py, как библиотека Python, предоставляет простой и мощный способ управления автономными браузерами и реализации автоматизированных операций на веб-страницах. Независимо от того, проводите ли вы сквозное тестирование или собираете динамически генерируемые данные, Puppeteer-py может вам очень помочь.
2. Что такое Кукловод-ру?
Puppeteer-py — это порт Puppeteer на Python, библиотеки Node.js для управления автономным браузером Chrome или Chromium. Puppeteer-py позволяет разработчикам Python программно взаимодействовать с браузером для выполнения различных автоматизированных задач.
3. Особенности Puppeteer-py
Puppeteer-py унаследовал все функции Puppeteer и оптимизирован для Python. Вот некоторые ключевые особенности:
●Безголовое управление браузером: вы можете управлять браузером, не открывая интерфейс браузера.
●Создание снимков экрана и PDF-файлов. Легко создавайте снимки экрана веб-страниц или создавайте файлы PDF.
●Автоматическая отправка форм: автоматическое заполнение и отправка веб-форм.
●Захват информации об элементах: получение текста, атрибутов и другой информации об элементах страницы.
● Имитация поведения пользователя: имитация поведения пользователя, такого как нажатие, прокрутка и ввод с клавиатуры.
●Перехват сетевых запросов: перехватывайте, изменяйте или блокируйте сетевые запросы.
●Выполнение JavaScript: выполнение кода JavaScript в контексте страницы.
●Асинхронная работа: API разработан асинхронным для улучшения возможностей параллельной обработки.
4. Используйте Puppeteer-py для доступа к JD.com.
В этой статье посещение веб-сайта JD.com будет использоваться в качестве примера, чтобы продемонстрировать, как использовать Puppeteer-py для автоматизированных операций. Подробный процесс выглядит следующим образом:
4.1 Инициализация браузера и страницы
Сначала нам нужно инициализировать экземпляр браузера и новую страницу.
4.2 Перейдите на JD.com
Далее мы перейдем на домашнюю страницу JD.com:
4.3 Поиск товаров
Предположим, мы хотим выполнить поиск «книг Python». Мы можем смоделировать поведение пользователя, вводящего текст в поле поиска и нажимающего кнопку поиска:
4.4 Ожидание результатов поиска
Загрузка результатов поиска может занять некоторое время, мы можем использовать метод page.waitForSelector, чтобы дождаться загрузки определенного элемента:
4.5 Результаты поиска по скриншотам
После загрузки результатов поиска мы можем сделать снимок экрана страницы результатов поиска:
4.6 Закройте браузер
Наконец, мы закрываем экземпляр браузера:
Полный процесс кода выглядит следующим образом:
import asyncio
from puppeteer import Browser, BrowserContext
proxyHost = "wdfddrrf"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"
async def main():
# Настроить прокси-сервер
proxy = f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}"
# Запустить браузер
browser = await Browser.launcher().launch({
'args': [
'--proxy-server=' + proxy,
# Здесь можно добавить другие необходимые параметры запуска.
]
})
# Создайте контекст браузера и установите прокси
browser_context = await browser.createIncognitoBrowserContext()
page = await browser_context.newPage()
# Установить прокси страницы
await page.setExtraHTTPHeaders({
'Proxy-Host': proxyHost,
'Proxy-Port': proxyPort,
'Proxy-Username': proxyUser,
'Proxy-Password': proxyPass,
})
# Перейдите на JD.com.
await page.goto('https://www.jd.com')
# Найдите «Питон» книги"
await page.type('input[name="keyword"]', 'Python книги')
await page.click('button[name="search-btn"]')
# Дождитесь результатов поиск Загрузка
await page.waitForSelector('div.gl-item')
# Результаты поиска скриншотов
await page.screenshot(path='jd_search_result.png')
# Закрыть браузер
await browser.close()
if __name__ == '__main__':
asyncio.run(main())
Puppeteer-py — это мощная библиотека Python, которая упрощает автоматическое взаимодействие с Интернетом. Будь то сбор данных, автоматическое тестирование или создание снимков экрана веб-страниц, Puppeteer-py может удовлетворить ваши потребности. Благодаря введению и примеру кода в этой статье вы сможете начать использовать Puppeteer-py для разработки проектов.