본문 바로가기
반응형

DEVEL/PYTHON13

Playwright로 이벤트 랜딩페이지 테스트 자동화하기: 매번 다른 페이지를 어떻게 검증할까? 1. 도입부: 이벤트 페이지는 왜 자동화 테스트가 어려울까?이벤트 페이지, 프로모션 페이지, 캠페인 랜딩페이지는 일반적인 서비스 페이지와 다릅니다. 메인 서비스의 로그인, 회원가입, 결제 페이지는 UI와 플로우가 비교적 오래 유지되지만, 이벤트 페이지는 캠페인마다 문구, 이미지, 히어로 배너, 혜택 섹션, 신청 조건, CTA 버튼 위치가 계속 바뀝니다.그래서 많은 팀이 이런 말을 합니다.“이벤트 페이지는 매번 달라서 자동화 테스트가 어렵다.”“어차피 마케터가 문구를 바꾸면 테스트가 깨질 텐데 의미가 있나?”“랜딩페이지는 눈으로 보는 QA가 더 빠르지 않나?”절반은 맞고 절반은 틀립니다. 디자인 완성도, 카피의 설득력, 브랜드 톤, 마케팅 메시지의 적절성은 사람이 보는 수동 QA가 더 적합할 수 있습니다... 2026. 6. 23.
Playwright Python 무한 스크롤 크롤링 예제: 동적 페이지 데이터 수집 실전 가이드 requests로는 왜 무한 스크롤 데이터가 안 보일까?Python으로 크롤링을 처음 시작하면 보통 requests로 HTML을 가져오고, BeautifulSoup으로 원하는 태그를 찾습니다. 정적인 HTML 페이지라면 이 방식이 가장 단순하고 빠릅니다. 그런데 요즘 많은 웹사이트는 처음부터 모든 데이터를 HTML에 넣어 내려주지 않습니다. 화면이 열린 뒤 JavaScript가 API를 호출하고, 사용자가 스크롤을 내릴 때마다 새 데이터를 추가하는 방식으로 동작합니다.이런 페이지에서 requests.get()으로 HTML을 확인하면 .item, .title, .price 같은 요소가 보이지 않을 수 있습니다. 이는 Python 코드가 잘못된 것이 아니라, 브라우저에서 JavaScript가 실행된 뒤에야 .. 2026. 6. 16.
Playwright vs Selenium: 크롤링 자동화 도구 선택 가이드 1. 도입부: 왜 Playwright와 Selenium 비교가 필요한가웹 자동화 도구를 고를 때 많은 개발자가 먼저 고민하는 질문은 이렇습니다.“Selenium을 계속 써도 될까, 아니면 Playwright로 갈아타야 할까?”이 질문이 중요한 이유는 Playwright와 Selenium이 겉으로는 모두 브라우저를 띄우고 클릭하고 데이터를 가져오는 도구처럼 보이지만, 실제 사용 목적에 따라 적합성이 꽤 다르기 때문입니다.예를 들어 정적 HTML에서 상품명과 가격만 가져오는 작업이라면 Playwright나 Selenium보다 requests + BeautifulSoup이 더 단순할 수 있습니다. 반면 React, Vue, Next.js로 만든 SPA에서 버튼을 누른 뒤 렌더링되는 데이터를 수집하거나, 로그인.. 2026. 6. 15.
Python - 맥OS에서 파이썬 설치 및 개발하기 1. 맥OS에서 파이썬 설치 방법맥OS에는 기본적으로 파이썬 2.x 버전이 탑재되어 있는 경우가 많습니다. 하지만 최신 프로젝트나 라이브러리는 파이썬 3.x 버전을 요구하기 때문에 별도로 설치하는 것이 일반적입니다. 가장 편리한 방법은 홈브류(Homebrew)를 이용하는 것입니다. 터미널에서 brew install python 명령어를 입력하면 최신 파이썬 3 버전이 설치되며, python3 --version으로 설치 여부와 버전을 확인할 수 있습니다. 또 다른 방법은 파이썬 공식 웹사이트에서 설치 패키지를 직접 내려받아 설치하는 것입니다. 설치 후에는 pip3 명령어를 통해 필요한 패키지를 관리할 수 있으며, 시스템 환경 변수에 경로를 추가하면 어느 디렉토리에서든 파이썬을 실행할 수 있습니다. 이처럼 .. 2025. 9. 2.
파이썬 requests 완전 정복: 대안 라이브러리 비교, 장단점, 실전 예제 웹 개발, 크롤링, 내부 API 연동까지… 파이썬에서 HTTP를 다룬다면 가장 먼저 떠오르는 라이브러리가 바로 requests 입니다. “인간을 위한(human-friendly)” API를 표방할 만큼 문법이 직관적이고 실무 채택률도 매우 높죠. 이 글에서는 requests의 핵심 사용법을 정리하고, HTTPX, urllib3, aiohttp, urllib.request(표준 라이브러리) 와 비교해 언제 무엇을 선택할지 명확하게 안내합니다. 각 라이브러리별 장단점, 코드 예제, 베스트 프랙티스까지 한 번에 정리해 드려요.1) 왜 requests 인가?가독성/간결성 최고: requests.get(url)만으로도 충분히 읽기 쉽고 직관적세션/쿠키 관리: Session()으로 커넥션 재사용, 쿠키 자동 유지폼.. 2025. 9. 2.
Python Playwright를 이용한 스크래핑 Python에서 Playwright를 사용하여 웹 스크래핑을 수행하는 방법을 단계별로 설명하겠습니다. Playwright는 강력한 웹 자동화 도구로, 다양한 브라우저를 지원하며 빠르고 안정적인 스크래핑을 할 수 있게 해줍니다.1. Playwright 설치먼저 Playwright를 설치해야 합니다. Python 환경에서 아래 명령어를 실행하세요:pip install playwright설치 후 브라우저 이진 파일을 다운로드해야 합니다.playwright install2. Playwright 기본 사용법Playwright를 사용하여 웹 페이지를 열고 데이터를 스크래핑하는 기본 예제를 보여드리겠습니다.from playwright.sync_api import sync_playwright# Playwright 실행.. 2024. 8. 31.
PYTHON 두장의 이미지 합성하기 필요한 패키지를 설치해야 합니다. 다음 명령을 사용하여 OpenCV를 설치할 수 있습니다. pip install opencv-python 그런 다음, 다음의 코드를 사용하여 이미지를 합성할 수 있습니다. import cv2 import numpy as np # 이미지 파일 경로 image1_path = "image1.jpg" image2_path = "image2.jpg" # 이미지 불러오기 image1 = cv2.imread(image1_path) image2 = cv2.imread(image2_path) # 이미지 크기 조정 (합성하기 전에 두 이미지가 동일한 크기여야 함) image1 = cv2.resize(image1, (image2.shape[1], image2.shape[0])) # 이미지 합.. 2024. 4. 9.
PYTHON ChatGPT API 예제 Python에서는 OpenAI의 공식적으로 지원하는 openai 라이브러리를 사용해서 ChatGPT API를 사용할 수 있다. pip install openai import openai openai.api_key = 'your-api-key' response = openai.Completion.create( engine="text-davinci-002", prompt="Translate the following English text to French: '{text}'", # {text} 부분을 원하는 텍스트로 바꾸세요 max_tokens=60 ) print(response.choices[0].text.strip()) openai 라이브러리는 기본적으로 python 객체를 반환하므로 별도로 JSON을 파.. 2023. 7. 25.
PYTHON 내 주소에 이더리움 거래 조회 from web3 import Web3 # web3 인스턴스 초기화 w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/YOUR-INFURA-PROJECT-ID')) # 확인하려는 주소 my_address = '0xYourEthereumAddressHere' # 최신 블록 번호 얻기 latest_block = w3.eth.block_number # 최신 블록부터 특정 블록까지 거래 확인 for i in range(latest_block - 10**5, latest_block): block = w3.eth.get_block(i, full_transactions=True) for tx in block.transactions: if tx['to'] == my.. 2023. 7. 18.
[PYTHON] requests 구글 검색 import requests from bs4 import BeautifulSoup # 검색할 키워드 keyword = '파이썬' # 검색 결과 페이지 URL url = f'https://www.google.com/search?q={keyword}' # HTTP GET 요청 보내기 response = requests.get(url) # 응답 코드가 200인 경우에만 처리 if response.status_code == 200: # HTML 파싱 soup = BeautifulSoup(response.text, 'html.parser') # 검색 결과 출력 search_results = soup.select('.g') for result in search_results: print(result.text) el.. 2023. 4. 3.
[PYTHON] selenium 구글 검색 셀레니움, 크롬 드라이버 설치 !pip install selenium !apt-get update # apt 패키지 리스트 업데이트 !apt install chromium-chromedriver 예제코드 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 크롬 드라이버 경로 설정 driver_path = '/usr/lib/chromium-browser/chromedriver' # 웹드라이버 옵션 설정 options = webdriver.ChromeOptions() options.add_argument('--headless') # 화면에 브라우저를 띄우지 않음 # 웹드라이버 객체 생성 driv.. 2023. 4. 3.
Python 유튜브 채널 구독하기 Google API Python 라이브러리 pip install --upgrade google-api-python-client 유튜브 데이터 API 예제 코드 # -*- coding: utf-8 -*- # Sample Python code for youtube.subscriptions.insert # See instructions for running these code samples locally: # https://developers.google.com/explorer-help/guides/code_samples#python import os import google_auth_oauthlib.flow import googleapiclient.discovery import googleapiclient... 2023. 3. 16.
반응형