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_username
및 your_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 우리에게 언제든지 할 수 있습니다!
Reference
이 문제에 관하여(Oxylabs와 셀레늄 프록시 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/oxylabs-io/selenium-proxy-integration-with-oxylabs-2l9l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)