본문 바로가기

Python/크롤링, 스크래핑 (Selenium 등등)9

[Python] 안전한 URL 문자열로 인코딩, 디코딩하는 방법 quote(), unquote() urllib.parse 이란? 위 모듈은 URL을 안전하게 처리하고 다룰 수 있는 기능을 제공합니다. 그 중에서도 quote 함수는 URL의 일부분으로 사용할 수 없는 문자를 안전한 형태로 인코딩하여 URL을 생성할 때 사용됩니다. 이 함수는 일반적으로 URL에서 사용할 수 없는 문자들을 %xx 형태로 인코딩하여 URL에 사용할 수 있게 해줍니다. 예를 들어, 공백이나 특수 문자 등이 URL에 포함될 때 이러한 문자들을 안전하게 인코딩하여 URL을 만들 때 사용됩니다. 디코딩하여 URL을 생성할 때는 unquote() 함수를 사용합니다.인코딩함수 quote() 예시from urllib.parse import quote# 안전한 문자열로 URL 인코딩url = "https://www.example.com/.. 2024. 5. 29.
[Python] Selenium 작업 시 보안 문자 해결하는 방법(모듈) imagecaptcha() anticaptchaofficial.imagecaptcha란?위 모듈은 보안문자(CAPTCHA) 이미지를 해독하는 기능을 제공합니다. 이 모듈을 사용하면 웹사이트에서 자동입력 방지 시스템으로 사용되는 이미지 기반 보안문자를 해독할 수 있습니다. 이 모듈을 통해 보안문자 이미지를 분석하고, 해독 결과를 반환하여 자동화된 프로세스에서 보안문자 입력 단계를 자동화할 수 있습니다.사용 방법)from selenium.webdriver.common.by import Byfrom anticaptchaofficial.imagecaptcha import imagecaptcha# 자동입력 방지문자 스크린샷element = driver.find_element(By.CSS_SELECTOR, '해당 요소')element.scr.. 2024. 5. 29.
[Python] Selenium을 이용한 스크린샷 찍는 방법, 스크린샷(파일)에서 원하는 요소의 위치나 크기에 맞게 크롭하는 방법, 이미지를 보여주는 방법 save_screenshot(), PIL 스크린샷 찍는 법# 현재 html문서(DOM)의 총 높이와 너비로 브라우저 크기를 맞춤height = driver.execute_script('return document.documentElement.scrollHeight')width = driver.execute_script('return document.documentElement.scrollWidth')driver.set_window_size(width, height) time.sleep(2)# 지정 경로에 스크린샷 파일을 저장(.png 등으로 끝나야 함)driver.save_screenshot(경로)스크린샷(파일)에서 원하는 요소의 위치나 크기에 맞게 크롭하는 법# 관련 모듈 importtry: from PIL import Ima.. 2024. 5. 28.
[Python] Selenium 자바스크립트를 이용한 조작 방법 execute_script(), switch_to.window() 자바스크립트를 이용한 조작 방법들# 버튼 클릭driver.execute_script("document.getElementsByTagName('button')[0].click()")# ID=textInput인 요소인 value 작성driver.execute_script("document.querySelector('#textInput').value='~'")# 태그 체크하는 법driver.execute_script("document.getElementsByTagName('option')[2].selected=true")# 체크박스 체크하는 법driver.execute_script("document.getElementById('checkbox').checked=true")요소가 가려지거나 스크롤 등의 이유로.. 2024. 5. 28.
[Python] Selenium 설명, 사용 방법, 관련 모듈, 함수 등등 selenium(원하는 데이터가 동적인 데이터일 때 사용) 크롬드라이버를 제어하거나 원하는 정보를 얻기 위해 사용, 사람의 행동을 컴퓨터 대신함 설치-> pip install selenium관련 패키지# 관련 패키지from selenium import webdriverfrom seleniuhttp://m.webdriver.common.keys import Keysfrom seleniuhttp://m.webdriver.common.by import Byfrom seleniuhttp://m.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom seleniuhttp:/.. 2024. 5. 28.
[Python] 셀레니움의 명시적 대기와 암시적 대기에 대해 implicitly_wait(), WebDriverWait() 암시적 대기와 명시적 대기는 모두 웹 페이지가 로딩되기를 기다리는 방법이지만, 사용되는 시기와 방식에 차이가 있다. 암시적 대기(implicitly_wait)from selenium import webdriver# 암시적 대기 설정 (최대 10초 대기)driver.implicitly_wait(10)암시적 대기는 페이지의 모든 요소가 로드되기를 기다립니다. 즉, 페이지를 로딩할 때마다 모든 요소가 나타날 때까지 기다립니다.driver.implicitly_wait(10)과 같이 선언하며, 여기서 10은 최대 대기 시간을 의미합니다. 예를 들어, 페이지가 모든 요소를 5초 내에 로드하면 대기가 종료됩니다.암시적 대기는 전역적으로 적용되며, 페이지의 모든 요소가 로드되는 동안 해당 시간을 기다립니다. 암시적 대.. 2024. 5. 27.
[Python] 유저 에이전트(User Agent)와 셀레니움 옵션 설정에 대해 Options() 셀레니움을 사용하여 자동화 작업을 할 때, 사이트에서 매크로를 탐지하거나 차단하는 경우가 있습니다.이를 회피하기 위해 사용자 에이전트(User Agent) 값을 조작할 수 있습니다.사용자 에이전트는 브라우저와 운영 체제 정보를 웹 서버에 제공하여 콘텐츠를 최적화하는 데 사용됩니다.안드로이드 계열의 유저 에이전트를 설정하면, 셀레니움이 안드로이드 기반의 브라우저로 인식되어 웹 서버에서 매크로를 탐지하기 어려워집니다.적용법일반 브라우저에서의 유저 에이전트 확인:개발자 도구를 열고 콘솔창에 navigator.userAgent를 입력합니다.나오는 값은 해당 브라우저의 유저 에이전트입니다.셀레니움 옵션으로 설정:options.add_argument('user-agent=...')를 사용하여 원하는 유저 에이전트 .. 2024. 5. 27.
[Python] requests 예외처리 방법과 각 예외별 설명 ConnectionError, Timeout, TooManyRedirects, HTTPError, RequestException, Exception requests 라이브러리를 사용할 때 발생할 수 있는 여러 가지 예외들을 처리하는 방법  ConnectionError:서버에 연결할 수 없거나 DNS 조회에 실패하는 경우 발생합니다.import requeststry: response = requests.get(url)except requests.exceptions.ConnectionError as e: print("서버에 연결할 수 없습니다:", e) Timeout:요청 시간 초과가 발생한 경우 발생합니다.import requeststry: response = requests.get(url, timeout=5)except requests.exceptions.Timeout as e: print("요청 시간 초과입니다:", e) To.. 2024. 5. 27.
[Python] Beautifulsoup 라이브러리 설명과 사용법 beautifulsoup(), find(), find_all(), select(), select_one() Beautiful Soup은 HTML 및 XML 문서를 파싱하고 구문 분석하기 위한 파이썬 라이브러리입니다. 이 라이브러리는 웹 스크래핑 및 데이터 추출 작업에 널리 사용됩니다. 주요 기능은 다음과 같습니다:파싱(Parsing): Beautiful Soup은 HTML 및 XML 문서를 구문 분석하여 파이썬 객체로 변환합니다. 이를 통해 문서 내에서 데이터를 탐색하고 추출할 수 있습니다.데이터 추출: Beautiful Soup은 문서 내에서 특정 태그, 클래스, ID 등을 검색하여 데이터를 추출할 수 있습니다. 이를 통해 웹 페이지에서 텍스트, 링크, 이미지 등 다양한 유형의 데이터를 쉽게 추출할 수 있습니다.탐색(Navigation): Beautiful Soup은 문서 내에서 태그 간의 관계를 탐색할 수.. 2024. 5. 27.