파이썬/크롤링

    Requests : HTTP 요청 최적화

    Python의 requests 모듈은 HTTP 요청을 보내고 응답을 처리하는 데 사용되는 강력하면서도 간편한 도구입니다. 그러나 대규모 또는 빈번한 요청을 다루는 경우, 코드의 효율성을 고려하여 최적화할 필요가 있습니다. 이 블로그 글에서는 requests 모듈을 사용하여 HTTP 요청을 최적화하는 다양한 방법을 살펴보겠습니다. 1. 세션 유지 requests의 Session 객체를 사용하면 연속적인 요청 간에 상태를 유지할 수 있습니다. 이를 통해 동일한 서버에 여러 요청을 보낼 때 발생하는 연결 설정 오버헤드를 줄일 수 있습니다. import requests session = requests.Session() # 여러 요청에서 동일한 세션 사용 response1 = session.get('https:..

    크롤링이 가능한 사이트인지 확인하는 방법

    웹 사이트를 크롤링하기 전에 해당 사이트에서 크롤링을 허용하는지 확인하는 것이 중요합니다. 웹 사이트에서 크롤링을 허용하지 않는 경우, 크롤링을 시도하면 차단되거나 페이지가 제대로 표시되지 않을 수 있습니다. 웹 사이트에서 크롤링을 허용하는지 확인하는 방법은 다음과 같습니다. robots.txt 파일 확인 웹 사이트의 robots.txt 파일을 확인하면 크롤러가 어떤 페이지를 크롤링할 수 있는지 확인할 수 있습니다. robots.txt 파일은 웹 사이트의 최상위 디렉터리에 위치하며, 다음과 같은 형식으로 작성됩니다. User-agent: * Disallow: / Allow: /index.html 위의 예시에서 User-agent: *는 모든 크롤러에 해당하는 것을 의미합니다. Disallow: /는 모든..

    크롤링을 할 때 셀레니움이 필요한지 확인하는 방법

    크롤링을 할 때 셀레니움이 필요한지 확인하는 방법은 크게 두 가지가 있습니다. 자바스크립트 사용 중지 웹 브라우저의 개발자 도구에서 자바스크립트를 사용 중지하고 페이지를 확인하는 방법입니다. 자바스크립트가 사용 중지되면 웹 페이지의 동적인 요소가 모두 숨겨지고, 정적 요소만 표시됩니다. 따라서, 페이지의 내용을 정적 요소만으로 추출할 수 있다면 셀레니움이 필요하지 않습니다. 개발자 도구에서 자바스크립트 사용 중지 방법 크롬 브라우저의 경우 다음과 같은 방법으로 개발자 도구에서 자바스크립트 사용을 중지할 수 있습니다. 크롬 브라우저에서 페이지를 열고, F12 키를 누릅니다. 개발자 도구가 열리면,  환경설정을 선택합니다. 디버거 항목의 자바스크립트 사용 중지(Disable JavaScript) 체크박스를..

    셀레니움 최적화를 위한 chrome_options

    셀레니움은 웹 페이지를 자동화하는 데 사용되는 프레임워크입니다. 셀레니움을 사용하여 웹 페이지를 크롤링하거나 테스트할 때는 성능 최적화가 중요합니다. 성능을 최적화하면 셀레니움 작업을 더 빠르게 수행할 수 있습니다. 셀레니움의 성능을 최적화하는 방법 중 하나는 chrome_options를 사용하는 것입니다. chrome_options는 Chrome 브라우저를 특정 방식으로 구성하는 데 사용할 수 있는 옵션입니다. 셀레니움에서 자주 사용되는 chrome_options는 다음과 같습니다. --headless: 브라우저를 GUI 없이 실행합니다. 이를 통해 브라우저 창이 표시되지 않아 리소스를 절약할 수 있습니다. --disable-gpu: GPU 가속을 비활성화합니다. 일부 시스템에서 GPU 가속이 문제를 ..

    셀레니움에서 이미지 비활성화 : 최적화

    셀레니움을 사용하여 웹 페이지를 크롤링하거나 테스트할 때, 이미지는 페이지 로딩에 큰 영향을 미칠 수 있습니다. 이미지를 비활성화하면 페이지 로딩 시간을 크게 단축할 수 있습니다. 셀레니움에서 이미지를 비활성화하는 방법 중 하나는 Chrome 브라우저 옵션을 사용하는 것입니다. 다음과 같이 사용할 수 있습니다. from selenium import webdriver from selenium.webdriver.chrome.options import Options # Chrome 브라우저의 옵션을 설정 chrome_options = Options() prefs = {"profile.managed_default_content_settings.images": 2} # 이미지를 비활성화하는 옵션 chrome_op..

    셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법

    셀레니움은 웹 브라우저를 제어하여 자동화된 테스트를 수행하는 데 사용되는 라이브러리입니다. 셀레니움을 사용하여 웹 페이지를 탐색하려면 먼저 해당 페이지가 완전히 로딩되어야 합니다. 셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법에는 여러 가지가 있습니다. 1. time.sleep() 함수 사용 가장 간단한 방법은 time.sleep() 함수를 사용하는 것입니다. 이 함수는 지정된 시간 동안 코드의 실행을 일시 중지합니다. from selenium import webdriver driver = webdriver.Chrome() driver.get("https://google.com") # 10초 동안 기다립니다. time.sleep(10) # 페이지의 제목을 출력합니다. print(driver.tit..

    셀레니움의 키보드 : selenium.webdriver.common.keys

    셀레니움을 사용하여 웹 페이지의 입력 필드에 텍스트를 입력하거나 특수 키를 사용하여 웹 페이지와 상호작용할 수 있습니다. 이러한 기능을 수행하는 데 핵심적인 역할을 하는 것이 바로 selenium.webdriver.common.keys 모듈입니다. 1. 키 입력: send_keys 메서드 활용 WebElement를 찾은 후, send_keys() 메서드를 사용하여 해당 요소에 키 입력을 전송할 수 있습니다. 이 메서드는 텍스트 문자열뿐만 아니라 키보드의 특수 키도 지원합니다. from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys driver..

    웹 자동화의 핵심 : 셀레니움의 WebElement 란?

    웹 브라우저를 제어하여 자동화 작업을 수행하는 셀레니움은 웹 개발자와 테스터에게 필수적인 도구입니다. 셀레니움의 핵심 요소 중 하나는 WebElement입니다. 이번 글에서는 WebElement에 대해 자세히 살펴보고, 웹 페이지 요소를 다루는 다양한 기능을 알아보겠습니다. 1. WebElement란? WebElement는 웹 페이지의 구성 요소를 나타내는 객체입니다. 버튼, 입력 필드, 링크, 이미지 등 웹 페이지상의 모든 상호작용 가능한 요소는 WebElement로 표현됩니다. 셀레니움은 이러한 요소를 식별하고 조작하기 위한 다양한 메서드를 제공합니다. 2. 요소 찾기: 검색 메소드 활용 WebElement를 찾는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 다음과 같습니다. By.ID: 요소..