Python 23

정규식(regular expression)

re모듈을 통해 사용 import re 문자열에 대한 연산에 사용. 문자열 패턴 표현, 문자열 수정, 분할 많이 쓰는 패턴 패턴 설명 ^패턴 이 패턴으로 시작해야 함 패턴$ 이 패턴으로 끝나야 함 패턴1|패턴2 두 패턴 중 하나 . 줄바꿈(\n)을 제외한 모든 문자 한 개 {숫자} {숫자,} {숫자1,숫자2} {숫자}일 때 숫자 만큼 반복 {숫자,}일 때 숫자 이상 반복 {숫자1, 숫자2}일 때 숫자1 이상 숫자2 이하 반복 * 0번 이상 반복 = {0,} + 1번 이상 반복 = {1,} ? 하나 있거나 없어야 함 = {0,1} * + ? {} 정규식의 매치 결과는 매우 탐욕스러워서 매치할 수 있는 최대한의 문자열을 반환한다. -> 방지를 위해 ?를 사용 Greedy(최대한 많이 반환) Lazy(최대한 ..

Python 2024.04.15

[Python] 힙

힙: 힙 속성을 만족하는 트리 힙 속성 1. 완전 이진 트리( 마지막 레벨 직전의 노드들은 다 채워져 있고, 마지막 레벨은 다 채워질 필요가 없더라도, 왼쪽부터 오른쪽으로 채워져 있어야 함) 2. 최대 힙 -> 부모 노드의 값이 자식 노드의 값보다 크거나 같아야 한다 최소 힙 -> 부모 노드의 값이 자식 노드의 값보다 작거나 같아야 한다 파이썬 라이브러리를 사용한 heap import heapq heapq는 최소 힙을 사용 heapq 메소드 시간 복잡도 heapq.heapify() O(N) heapq.heappush() O(logN) heapq.heappop() O(logN) heapq 메소드 1. heapq.heapify(리스트) 리스트를 힙 속성을 만족시키도록 만들어준다. arr = [1, 4, 5,..

Python 2024.02.05

웹 스크래핑으로 인기 급상승 동영상 데이터 저장하기

저는 유튜브 인기 급상승 동영상을 1시간마다 업데이트하여 50만회 이상인 동영상의 정보만 엑셀에 저장해보겠습니다! 필요 라이브러리를 임포트 #웹 스크래핑 from selenium import webdriver from bs4 import BeautifulSoup #엑셀 from openpyxl import Workbook, load_workbook import os import pandas as pd import datetime 엑셀 워크북 생성/불러오기 if not os.path.isfile("유튜브인기급상승동영상.xlsx"): #엑셀 워크북 생성 wb = Workbook(write_only=True) ws = wb.create_sheet('인기급상승동영상') #컬럼 정보 ws.append(['시간',..

Python 2024.01.22

Selenium 사용하여 웹 자동화하기3- 뉴스 기사 스크랩

1. IT 관련 기사를 스크래핑 네이버 IT 카페고리 뉴스 기사의 헤드라인 뉴스를 뽑는다 https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=105 IT/과학 : 네이버 뉴스 모바일, 인터넷, SNS, 통신 등 IT/과학 분야 뉴스 제공 news.naver.com 태그 추출은 지난 블로그를 토대로 진행한다. 2024.01.13 - [Python] - 웹 스크래핑으로 뉴스 기사 링크 받아오기 웹 스크래핑으로 뉴스 기사 링크 받아오기 웹스크래핑을 이용하여 IT 관련 뉴스를 보기 위한 코드입니다 웹 스크래핑 내용 2024.01.13 - [Python] - 웹 스크래핑 웹 스크래핑 웹크롤링: 웹사이트에서 URL, 키워드 수집(검색엔진이 웹사이트를 인 do..

Python 2024.01.17

Selenium 사용하여 웹 자동화하기2

2024.01.15 - [Python] - Selenium 사용하여 웹 자동화하기1 Selenium 사용하여 웹 자동화하기1 셀레니움 설치 및 크롬 웹 드라이버 설치 https://chancoding.tistory.com/136 [파이썬] Selenium 셀레니움 설치하기 / 크롬 드라이버 설치하기 목차 1. Python Selenium 설치하기 다른 라이브러리를 설치하는 것과 dogfoot1.tistory.com 저는 셀레니움 버전 4를 사용하여 버전 4 문법으로 진행합니다 셀레니움 라이브러리 임포트 from selenium import webdriver from selenium.webdriver.common.by import By#selenium4에서 웹 요소 찾기 위해 크롬 드라이버 생성 및 사이트..

Python 2024.01.16

Selenium 사용하여 웹 자동화하기1

셀레니움 설치 및 크롬 웹 드라이버 설치 https://chancoding.tistory.com/136 [파이썬] Selenium 셀레니움 설치하기 / 크롬 드라이버 설치하기 목차 1. Python Selenium 설치하기 다른 라이브러리를 설치하는 것과 동일합니다. pip 또는 conda 명령어를 사용해서 설치해주세요. pip install selenium conda install selenium 2. Chrome Driver 설치하기 Selenium을 사 chancoding.tistory.com 1. Selenium 설치 pip3 install selenium #버전을 정하고 싶을 때 pip3 install selenium == 원하는버전 셀레니움 버전 3과 버전 4의 문법이 다르니 주의하세요! ht..

Python 2024.01.15

웹 스크래핑으로 뉴스 기사 링크 받아오기

웹스크래핑을 이용하여 IT 관련 뉴스를 보기 위한 코드입니다 웹 스크래핑 내용 2024.01.13 - [Python] - 웹 스크래핑 웹 스크래핑 웹크롤링: 웹사이트에서 URL, 키워드 수집(검색엔진이 웹사이트를 인덱싱하기 위해) 웹스크래핑: 웹사이트에서 필요한 데이터 긁어오기 VsCode 터미널에서 파이썬 가상환경 만들기 라이브러리 간 dogfoot1.tistory.com 네이버 뉴스의 IT/과학 분야의 헤드라인 뉴스의 제목과 기사 링크를 받아옵니다 https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=105 IT/과학 : 네이버 뉴스 모바일, 인터넷, SNS, 통신 등 IT/과학 분야 뉴스 제공 news.naver.com 필요 라이브러리 임포트 ..

Python 2024.01.13

Python에서 엑셀, csv 다루기

- 엑셀 1. 터미널 환경에서 openpyxl 설치 pip3 install openpyxl 2. openpyxl 라이브러리 임포트 from openpyxl import Workbook 3. 워크북 생성 wb = WorkBook() wb = WorkBook(write_only=True) 읽지 않고, 저장만 할거라면 write_only = True 사용 4. 워크시트 생성 : .create_sheet() sheet = wb.create_sheet('워크시트 이름') 하나의 워크북에 여러 워크시트가 만들어질 수 있다. +기존의 워크북의 워크시트를 사용할 것이라면 openpyxl 라이브러리 임포트 및 워크북의 워크시트 불러오기 from openpyxl import load_workbook wb = load_wo..

Python 2024.01.13

웹 스크래핑

웹크롤링: 웹사이트에서 URL, 키워드 수집(검색엔진이 웹사이트를 인덱싱하기 위해) 웹스크래핑: 웹사이트에서 필요한 데이터 긁어오기 VsCode 터미널에서 파이썬 가상환경 만들기 라이브러리 간 버전 충돌 방지를 위해 가상환경을 만든다 python -m venv [가상환경 이름] cd [가상환경 이름]\Scripts activate 가상환경에서 웹 스크래핑을 위한 라이브러리 설치(터미널 창에서) 1. requests 서버에 request를 보내고 응답을 리턴 pip3 install requests 2. beautifulsoup4 HTML의 데이터 추출을 위해 pip3 install beautifulsoup4 웹 스크래핑을 하는 방법 웹사이트의 html 코드를 가져온다(requests 사용) -> html ..

Python 2024.01.13

알고리즘 패러다임

알고리즘 패러다임: 알고리즘 접근 패턴 1. Brute Force : 가능한 모든 경우를 다 시도한다 장점: 직관적이고 명확하다. 모든 경우의 수를 다 따지기 때문에 답을 확실하게 찾을 수 있다. 단점: input의 크기가 커지면 오래 걸린다. 2. 분할 정복 : 문제를 부분 문제로 나눠, 부분 문제를 해결한 값들을 합쳐 기존 문제를 해결한다. 분할 정복과 재귀의 차이 https://velog.io/@sossont/%EC%A2%85%EB%A7%8C%EB%B6%81-%EB%B6%84%ED%95%A0-%EC%A0%95%EB%B3%B5Divide-and-Conquer [종만북] 분할 정복(Divide and Conquer) 종만북 7장. 분할 정복 velog.io 큰 예시로 합병 정렬, 퀵 정렬이 있다. 3...

Python 2023.11.18