Oxylabs와 셀레늄 프록시 통합



웹 스크래핑에 관심이 있다면 웹 사이트 테스트 등을 위해 웹 브라우저 상호 작용을 자동화하는 데 도움이 되는 오픈 소스 도구인 Selenium에 대해 들어보셨을 것입니다.

이 테스트 프레임워크는 버튼 클릭, 스크롤 등과 같은 여러 작업을 수행하기 위해 브라우저와 상호 작용해야 할 때 특히 유용합니다. 그러나 주로 Selenium이 웹 사이트 테스트에 사용되는 경우에도 웹 스크래핑에도 사용할 수 있습니다. 웹 사이트에서 필요한 공개 데이터를 찾는 데 도움이 되기 때문입니다.

그래서 이번 글에서는 원활한 웹 스크래핑 과정을 위해 Oxylabs'Residential Proxies와 Selenium 통합 과정을 살펴보도록 하겠습니다.

Oxylabs의 프록시를 Selenium과 통합하는 방법은 무엇입니까?

여기에서는 Python의 Selenium과 Oxylabs의 주거용 프록시를 통합하는 방법을 설명합니다. 필요한 Python 버전은 Python 3.5(또는 그 이상)입니다.

셀레늄 설정

먼저 인증이 필요한 프록시를 구현하기 위해 기본 Selenium 모듈을 사용하면 전체 프로세스가 복잡해지기 때문에 Selenium의 Python 바인딩을 확장하려면 Selenium Wire을 설치해야 합니다. pip 명령을 사용하여 수행할 수 있습니다.

pip install selenium-wire


이 통합을 위한 또 다른 권장 패키지는 webdriver-manager입니다. 다양한 브라우저용 바이너리 드라이버 관리를 단순화하는 패키지입니다. 이 경우 각 업데이트 후 웹 드라이버의 새 버전을 수동으로 다운로드할 필요가 없습니다.
pip 명령을 사용하여 webdriver-manager를 설치할 수도 있습니다.

pip install webdriver-manager


프록시 인증

모든 것이 설정되면 다음 부분인 프록시 인증으로 이동할 수 있습니다. 프록시가 작동하려면 계정 자격 증명을 지정하라는 메시지가 표시됩니다.

USERNAME = "your_username" PASSWORD = "your_password" ENDPOINT = "pr.oxylabs.io:7777"


프록시 사용자의 사용자 이름과 비밀번호로 your_usernameyour_password 필드를 조정해야 합니다.

프록시 서버 연결 테스트
프록시가 작동하는지 확인하려면 ip.oxylabs.io를 방문해야 합니다. 모든 것이 올바르게 작동하면 사용 중인 프록시의 IP 주소를 반환합니다.

try: driver.get("https://ip.oxylabs.io/") return f'\nYour IP is: {re.search(r"[0-9].{2,}", driver.page_source).group()}' finally: driver.quit()


Selenium과 Oxylabs의 주거용 프록시 통합을 위한 전체 코드

import re
from typing import Optional

from seleniumwire import webdriver
# A package to have a chromedriver always up-to-date.
from webdriver_manager.chrome import ChromeDriverManager

USERNAME = "your_username"
PASSWORD = "your_password"
ENDPOINT = "pr.oxylabs.io:7777"


def chrome_proxy(user: str, password: str, endpoint: str) -> dict:
    wire_options = {
        "proxy": {
            "http": f"http://{user}:{password}@{endpoint}",
            "https": f"http://{user}:{password}@{endpoint}",
        }
    }

    return wire_options


def execute_driver():
    options = webdriver.ChromeOptions()
    options.headless = True
    proxies = chrome_proxy(USERNAME, PASSWORD, ENDPOINT)
    driver = webdriver.Chrome(
        ChromeDriverManager().install(), options=options, seleniumwire_options=proxies
    )
    try:
        driver.get("https://ip.oxylabs.io/")
        return f'\nYour IP is: {re.search(r"[0-9].{2,}", driver.page_source).group()}'
    finally:
        driver.quit()


if __name__ == "__main__":
    print(execute_driver())


마무리

대체로 Selenium은 특히 기본 사항을 학습할 때 공개 웹 스크래핑을 위한 훌륭한 도구입니다. 또한 신뢰할 수 있는 고품질 프록시를 사용하는 경우 공개 웹 스크래핑이 훨씬 더 효율적이 됩니다.
이 게시물에 대해 또는 일반적으로 프록시와의 통합에 대해 질문이 있으십니까? reach out 우리에게 언제든지 할 수 있습니다!

좋은 웹페이지 즐겨찾기