본문 바로가기

전체 글277

[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] 명령 인자값(command-line arguments) 받는 법 sys.argv 파이썬에서 명령 인자값(command-line arguments)을 받는 가장 일반적인 방법은 sys.argv를 사용하는 것입니다.  이 방법은 Python의 sys 모듈을 이용하여 가능합니다. import sysprint(sys.argv) 위 코드는 프로그램이 실행될 때 전달된 모든 명령 인자값을 리스트 형태로 출력합니다. 첫 번째 요소는 실행된 스크립트 파일의 이름이며, 그 뒤로는 전달된 인자값들이 순서대로 나열됩니다.예를 들어, python main.py abc를 실행했을 때, 위 코드를 실행하면 ['main.py', 'abc']가 출력됩니다.추가 설명명령 인자값을 사용하여 프로그램에 입력값을 전달할 수 있습니다.이를 통해 프로그램이 실행될 때 동적으로 동작하도록 만들 수 있습니다.예를 들어, 파일.. 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.
[MySQL] 데이터 삽입시에 Primary Key(PK)나 Unique Key(UK)가 중복되었을 때 무시하고 삽입하는 명령어 INSERT IGNORE INTO ~ INSERT IGNORE INTO-> MySQL에서 사용되는 문법으로, 데이터 삽입 시에 Primary Key(PK)나 Unique Key(UK)가 중복되었을 때 무시하고 삽입하는 명령어입니다.이 명령어를 사용하면 중복된 키가 발생하더라도 오류를 발생시키지 않고 무시하고 삽입합니다. 예시)INSERT IGNORE INTO 테이블명 (컬럼1, 컬럼2) VALUES (값1, 값2); 위 예제에서는 "테이블명" 테이블에 "컬럼1"과 "컬럼2"에 대한 값이 삽입되는데, 만약 이 과정에서 Primary Key나 Unique Key가 중복되어 발생한다면 해당 데이터는 무시되고 삽입이 진행됩니다. 2024. 5. 27.
[MySQL] 데이터 삽입시에 Primary Key(PK)나 Unique Key(UK)가 중복되었을 때 지정된 데이터를 업데이트하는 법 ON DUPLICATE KEY UPDATE ON DUPLICATE KEY UPDATE-> 데이터 삽입 시에 Primary Key(PK)나 Unique Key(UK)가 중복되었을 때 지정된 데이터를 업데이트하는 명령어입니다.주로 이 명령어는 데이터베이스에 데이터를 삽입할 때 중복된 키가 발생할 수 있는 경우에 사용됩니다. 이때, 중복된 키가 발생하면 해당 키에 대한 데이터를 업데이트하고, 중복된 키가 없는 경우에는 새로운 데이터를 삽입합니다. 예시)CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), age INT);여기서 "id"가 Primary Key로 정의되어 있습니다. 이제 이 테이블에 데이터를 삽입할 때 "id"가 중복되는 경우에는 해당 데이터의 "age"를 업데이트하는 .. 2024. 5. 27.
[Python] 리스트와 문자열 간 변환 방법과 관련 함수 설명 join(), split() 리스트를 문자열로 변환하는 방법리스트의 각 요소를 특정 구분자로 연결하여 하나의 문자열로 만드는 방법입니다. 이를 위해 join() 메서드를 사용합니다."구분자".join(리스트) join(): 문자열 메서드 중 하나로, 리스트의 각 요소를 하나의 문자열로 결합하는 역할을 합니다.문자열을 리스트로 변환하는 방법문자열을 특정 구분자를 기준으로 분할하여 리스트로 만드는 방법입니다. 이를 위해 split() 메서드를 사용합니다.문자열.split(구분자)split(): 문자열 메서드 중 하나로, 문자열을 지정된 구분자를 기준으로 분할하여 각각의 요소로 하는 리스트를 생성합니다. 2024. 5. 27.
[Python] enumerate() 함수 설명과 예제 enumerate() 함수는 반복 가능한(iterable) 객체(리스트, 튜플, 문자열 등)를 입력으로 받아 각 요소와 해당 요소의 인덱스를 튜플 형태로 반환하는 반복자(iterator)를 생성합니다. 이때, 인덱스는 0부터 시작합니다.  enumerate() 함수의 사용법은 다음과 같습니다.for index, value in enumerate(iterable, start=0): # 코드iterable: 반복 가능한 객체(리스트, 튜플, 문자열 등)를 의미합니다.start: 옵션 매개변수로, 인덱스의 시작 값을 지정할 수 있습니다. 기본값은 0입니다. 인덱스와 값은 튜플의 형태로 반환되며, index 변수에는 인덱스가 저장되고 value 변수에는 해당 요소의 값이 저장됩니다.예를 들어, 다음과 같이.. 2024. 5. 27.
[Python] 복잡한 데이터 구조를 보기 좋게 출력하는 법 pprint() 복잡한 데이터 구조를 보기 좋게 출력하는 법import pprintdata = { 'name': 'John', 'age': 30, 'languages': ['Python', 'JavaScript', 'Java'], 'address': { 'street': '123 Main St', 'city': 'Anytown', 'zip': '12345' }}pprint.pprint(data) 위 코드에서는 pprint() 함수를 사용하여 data 딕셔너리를 출력합니다.출력 결과는 들여쓰기가 적용되어 보기 좋게 나타납니다.예시 데이터는 복잡한 구조를 가지고 있으며, pprint() 함수를 사용함으로써 이를 보다 쉽게 이해할 수 있습니다.pprint() 함.. 2024. 5. 27.
[Python] 딕셔너리 데이터를 JSON 형식 문자열로 변환하는 방법 json.dumps() 딕셔너리 데이터를 JSON 형식 문자열로 변환하는 방법import jsonresult_str = json.dumps(딕셔너리 데이터, indent=4) json.dumps() 함수는 주어진 파이썬 객체(딕셔너리, 리스트 등)를 JSON 형식의 문자열로 변환합니다. indent 매개변수를 사용하면 JSON 문자열을 들여쓰기하여 보기 좋게 출력할 수 있습니다. 2024. 5. 27.