"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python 동적 웹 스크래핑 예: 셀레늄 및 웹드라이버 적용

Python 동적 웹 스크래핑 예: 셀레늄 및 웹드라이버 적용

2024-09-02에 게시됨
검색:588

Python dynamic web scraping example: application of selenium and webdriver

동적 웹 스크래핑은 일반적으로 HTTP 요청을 처리하기 위한 요청, 브라우저 동작을 시뮬레이션하기 위한 셀레늄 또는 pyppeteer와 같은 일부 Python 라이브러리를 사용합니다. 다음 기사에서는 셀레늄 사용에 중점을 둘 것입니다.

셀레늄에 대한 간략한 소개

셀레늄은 웹 애플리케이션을 테스트하기 위한 도구이지만 특히 JavaScript에 의해 동적으로 생성된 웹 콘텐츠를 스크랩해야 하는 경우 웹 스크래핑에도 자주 사용됩니다. Selenium은 클릭, 텍스트 입력, 웹 페이지 요소 가져오기 등 브라우저에서 사용자 동작을 시뮬레이션할 수 있습니다.

Python 동적 웹 스크래핑 예

먼저 셀레늄이 설치되어 있는지 확인하세요. 그렇지 않은 경우 pip:
를 통해 설치할 수 있습니다.

pip install selenium

해당 브라우저에 맞는 WebDriver도 다운로드해야 합니다. ‌Chrome 브라우저를 사용한다고 가정하면‌ ChromeDriver를 다운로드하고 해당 경로가 시스템 환경 변수에 추가되었는지 확인하거나‌ 코드에서 직접 경로를 지정할 수 있습니다. ‌

다음은 웹페이지 제목을 가져오는 간단한 예입니다.‌

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Setting up webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

이 스크립트는 example.com을 열고 제목을 가져와서 인쇄합니다. ‌

‌webdriver_manager는 WebDriver 버전을 자동으로 관리하는 타사 라이브러리입니다. ‌사용하지 않으려면 WebDriver를 수동으로 다운로드하고 경로를 지정할 수도 있습니다. ‌

동적 웹페이지에는 JavaScript로 렌더링된 콘텐츠가 포함될 수 있습니다. ‌셀레늄은 작동하기 전에 이러한 요소가 로드될 때까지 기다릴 수 있으며, 이는 이러한 웹 페이지를 처리하는 데 매우 적합합니다. ‌

Python에서 동적 웹페이지를 스크랩할 때 프록시 설정

Python을 사용하여 동적 웹페이지를 크롤링할 때 프록시를 사용하는 경우가 많습니다. 프록시를 사용하면 한편으로는 많은 장애물을 피하고 다른 한편으로는 작업 효율성을 높일 수 있습니다.

위에서 셀레늄 설치를 소개했습니다. 또한 해당 브라우저의 WebDriver도 다운로드하여 경로가 시스템 환경 변수에 추가되어 있는지 확인하거나 코드에서 직접 경로를 지정할 수 있습니다.
위 단계를 완료한 후 프록시를 구성하고 동적 웹 페이지를 스크랩할 수 있습니다.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Set Chrome options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port')

# Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step)
# driver_path = 'path/to/your/chromedriver'
# driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

# If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables)
driver = webdriver.Chrome(options=chrome_options)

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

이 예에서 ‌--proxy-server=http://your_proxy_ip:port는 프록시 구성을 위한 매개변수입니다.‌ your_proxy_ip 및 port를 실제로 프록시 서버의 IP 주소 및 포트 번호로 바꿔야 합니다. 사용

프록시 서버에 인증이 필요한 경우‌ 다음 형식을 사용할 수 있습니다.‌

chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')

여기서 사용자 이름과 비밀번호는 프록시 서버의 사용자 이름과 비밀번호입니다. ‌

위 코드를 실행한 후 ‌Selenium은 구성된 프록시 서버‌를 통해 대상 웹 페이지에 액세스하고 웹 페이지 제목을 인쇄합니다. ‌
ChromeDriver 경로를 어떻게 지정하나요?
ChromeDriver는 Selenium WebDriver의 일부입니다. WebDriver API를 통해 Chrome 브라우저와 상호작용하여 자동화된 테스트 및 웹 크롤러와 같은 기능을 구현합니다. ‌
ChromeDriver의 경로 지정에는 주로 환경 변수 구성이 포함됩니다. ‌구체적인 단계는 다음과 같습니다. ‌
1. Chrome 설치 위치 찾기
바탕화면의 구글 크롬 바로가기를 마우스 오른쪽 버튼으로 클릭한 뒤 '파일 위치 열기'를 선택하면 찾을 수 있다. ‌
2. 시스템 환경 변수 Path
에 Chrome 설치 경로를 추가합니다. 이를 통해 시스템은 어느 위치에서나 ChromeDriver를 인식할 수 있습니다. ‌
3. ChromeDriver 다운로드 및 압축 풀기
반드시 Chrome 브라우저 버전에 맞는 ChromeDriver를 다운로드하고 exe 프로그램에 압축을 풀어주세요. ‌
4. ChromeDriver의 exe 파일을 Chrome 설치 경로에 복사합니다.
이런 식으로 ChromeDriver를 사용해야 할 때 시스템이 자동으로 인식하여 호출할 수 있습니다

위는 Python 동적 웹 크롤링에서 Selenium과 webdriver를 적용하는 방법과 웹 페이지를 크롤링할 때 이를 방지하는 방법입니다. 물론, 위의 예시를 통해 실제 동작을 연습해 볼 수도 있습니다.

릴리스 선언문 이 기사는 https://dev.to/lewis_kerr_2d0d4c5b886b02/python-dynamic-web-scraping-example-application-of-selenium-and-webdriver-3330?1에 재현되어 있습니다. 침해가 있는 경우에는 Study_golang@163으로 문의하시기 바랍니다. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3