С быстрым развитием Интернета данные становятся все более ценными, а краулерная технология становится важным инструментом извлечения информации с веб-страниц. Однако тестирование и запуск скриптов сканера в различных средах могут вызвать проблемы. Обеспечение стабильности и совместимости сканеров становится головной болью, особенно в мультибраузерной и мультиплатформенной среде. BrowserStack, ведущая платформа кроссбраузерного тестирования, предоставляет мощные инструменты и сервисы для решения этой проблемы. Это руководство даст вам глубокое понимание того, как проводить автоматическое тестирование сканеров в BrowserStack, и покажет, как объединить технологию прокси-IP для улучшения сокрытия и успеха сканеров.
Сценарий сканера может вести себя по-разному в разных браузерах и устройствах. Кроме того, многие веб-сайты используют механизмы защиты от сканирования, такие как блокировка IP-адресов, обнаружение пользовательских агентов и проверка файлов cookie. Это делает тестирование сканеров в среде с несколькими браузерами и устройствами особенно важным. Поэтому нам нужен надежный способ автоматизировать тестирование сканера на BrowserStack и гарантировать, что сканер сможет успешно справиться с этими механизмами защиты от сканирования.
BrowserStack позволяет нам запускать автоматические тесты на реальных устройствах и браузерах. В сочетании с технологией прокси-IP, настраиваемыми пользовательскими агентами и настройками файлов cookie он может эффективно бороться с механизмами защиты от сканирования. Ниже приведены конкретные шаги по реализации этого решения:
Ниже приведен полный пример кода, демонстрирующий, как использовать Selenium в BrowserStack для автоматического тестирования сканера в сочетании с агентом сканера и настройками файлов cookie, используя Dianping в качестве целевого веб-сайта для сбора информации о продавцах. Код откроет страницу продавца Dianping и извлечет информацию о продавце со страницы:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Установите учетные данные доступа для BrowserStack.
BROWSERSTACK_USERNAME = 'your_browserstack_username'
BROWSERSTACK_ACCESS_KEY = 'your_browserstack_access_key'
# Подробности по настройке Crawler Agent Plus
PROXY_HOST = "proxy.16yun.cn"
PROXY_PORT = "12345"
PROXY_USER = "your_proxy_username"
PROXY_PASS = "your_proxy_password"
# Настройте параметры прокси
proxy = f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
# Настройте специальные параметры пользовательского агента и Браузера.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f"--proxy-server={proxy}")
chrome_options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36")
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
# Настройка удаленного WebDriver BrowserStack
desired_cap = {
'browserName': 'Chrome',
'browserstack.user': BROWSERSTACK_USERNAME,
'browserstack.key': BROWSERSTACK_ACCESS_KEY,
'browserstack.debug': 'true'
}
# Запустите WebDriver и подключитесь к BrowserStack.
driver = webdriver.Remote(
command_executor='https://hub-cloud.browserstack.com/wd/hub',
desired_capabilities=desired_cap,
options=chrome_options
)
# Установите файлы cookie для имитации статуса входа пользователя.
cookie = {'name': 'example_cookie', 'value': 'cookie_value'}
driver.get('https://example.com')
driver.add_cookie(cookie)
# Откройте целевой веб-сайт и выполните операции сканирования.
driver.get('https://example.com/target-page')
page_content = driver.page_source
print(page_content)
# Закрыть Браузер
driver.quit()
Автоматизация тестирования сканеров в мультибраузерной и мультиплатформенной среде — сложная задача, но BrowserStack предоставляет мощное решение. Комбинируя технологию прокси-IP, пользовательский агент и настройки файлов cookie, сканер может обеспечить успешный сбор данных. Пример кода, представленный в этом руководстве, предоставляет разработчикам понятный шаблон для реализации автоматического тестирования сканера в реальных проектах. Мы надеемся, что он будет полезен для вашего проекта сканера. Давайте легко справимся с разнообразными потребностями в тестировании и создадим более мощный инструмент для сканирования с помощью BrowserStack!