본문 바로가기

Python231

특정 영역의 하위태그별 데이터 크롤링 □ 아래 그림 참고요망 □ 코스피 텝에서 표시되는 모든 회사명, 회사별 코스피가격, 증감률 데이터 추출 □ 코스피 텝, 즉, 상위 태그안에서의 데이터들 중 회사명, 코스피가격, 증감률에 해당하는 클래스 네임과 For문을 활용해 추출 및 출력 #라이브러리 호출 import requests import re from bs4 import BeautifulSoup #크롤링대상사이트 및 request/get 요청 req_site = requests.get('크롤링사이트') soup_parser = BeautifulSoup(req_site.content, 'html.parser') get_data = soup_parser.select('.row_sty') #클래스네임이 row_sty 영역의 데이터 요청 #회사명과 .. 2024. 1. 28.
정규 표현식 ④ □ findall : 정규표현과 매칭되는 모든 문자열을 리스트 객체로 리턴함 import re # 패턴지정 : 소문자 a~z까지 해당하는 단어가 하나이상이면 모두 추출 new_pattern = re.compile('[a-z]+') find_all_new_pattern = new_pattern.findall('Game of Life in Python') print(find_all_new_pattern) # 출력 : ['ame', 'of', 'ife', 'in', 'ython'] # 패턴지정 : 대문자 A~z까지, 소문자 a~z까지 해당하는 단어가 하나이상이면 모두 추출 new_pattern_second = re.compile('[A-Za-z]+') find_all_new_pattern_second = ne.. 2024. 1. 28.
정규 표현식 ③ □ {n} or {m,n} 반복패턴 ○ {n} 반복 패턴 생성 : 앞글자가 n번만큼 나오는 패턴 #패턴지정 : D가 두번 나와야함 seventh_pattern = re.compile('AD{2}A') # 확인 print(seventh_pattern.search('ADA')) print(seventh_pattern.search('ADDA')) #매칭 print(seventh_pattern.search('ADDDA')) #D가 3번으로 불일치 ○ {m,n} 반복 패턴 생성 : 앞글자가 m에서 n만큼 나나오는 패턴 # 패턴지정 : D가 최소 3번에서 6번 나와야함 eight_pattern = re.compile('AD{3,6}A') print(eight_pattern.search('ADDA')) print(e.. 2024. 1. 28.
정규 표현식 ② □ 반복 패턴 ○ ? : ? 앞에 위치한 문자가 0번 또는 1번 표시되는 패턴, 즉 있어도 되고 없어도 되는 패턴 # 패턴지정 : D가 한번 나오거나 아예 한나오는것 hrid_pattertn = re.compile('D?A') # 확인 print(thrid_pattertn.search('A')) #모두 매칭 print(thrid_pattertn.search('DA')) #모두 매칭 print(thrid_pattertn.search('DDA')) #모두 매칭 ○ * : * 앞에 위치한 문자가 0번 또는 그 이상 반복이되는 패턴 # 패턴지정 : D가 0번 또는 그 이상 반복되는 패턴 fourth_pattern = re.compile('D*A') # 확인 print(fourth_pattern.search('A.. 2024. 1. 28.
정규 표현식 ① □ 정규표현식 종류 □ 활용 라이브러리 #정규 표현식 라이브러리 임포트 import re □ 패턴 지정 후 매치여부 확인① [ 패턴지정 = re.compile(패턴) / 매칭확인 = 패턴명.search('값') ] #정규 표현식 라이브러리 임포트 import re #데이터 변수 string = 'DDA DIA DDA DA' #'D.A','Dave',string # └'D.A : 앞, 맨뒤 대문자. 가운데는 한글자인 패턴 # └'Dave' : 위에서의 패턴에 해당하는 단어를 'Dave'로 바꾸겠다 # └string : string 변수에 담긴 데이터를 위 내용기반으로 코드를 진행하겠다 edit_string = re.sub('D.A','Dave',string) print(edit_string) #출력값 : .. 2024. 1. 26.
문자열 함수모음 #문자개수 세기 : count data = 'dave david' print(data.count('d')) #d가 몇개가 나오는지 print(data.count('v')) #v가 몇개가 나오는지 #특정위치 알려주기 : index string = 'show me the money' print(string.index('e')) #e가 몇번째에 나오는지 print(string.index('y')) #해당문자가 없으면 에러 출력 #특정위치 알려주기 : find #.index와 다르게 찾고자하는 문자열이 없어도 에러발생안함 -1 을 출력 string = 'show me the money' print(string.find('s')) print(string.find('y')) print(string.find('x').. 2024. 1. 26.
파이썬 기본모음_3 □ 함수 ○ 형식 def 함수_이름(매개변수): 수행문장1 수행문장2 ○ 매개변수 : 함수에 입력으로 전달된 값을 받는 변수 ○ 인수 : 함수를 호출할 때 전달하는 입력값 #일반형태 def add(a,b): result = a + b return result print(add(5,6)) #매배변수(입력값)이 없는 형태 def say(): return 'Hi' print(say()) #리턴값 없는 형태 def no_add(a,b): print(a*b) no_add(2,3) #매개변수 직접 지정하여 호출하는 형태 def sub(a,b): return a-b print(sub( a = 7, b = 9 )) #*********************** #여러개의 입력값을 받는 함수를 만드는 형태 # *args .. 2024. 1. 26.
파이썬 기본모음_2 □ 조건문 IF #입력 값이 짝수면 짝수, 홀수면 홀수 num_kind = int(input('아무숫자 입력\t:\t')) if num_kind % 2 ==0: print('짝수') else: print('홀수') #입력금액에 따라 할인율 적용 input_money = int(input("금액입력\t:\t")) if input_money > 100000: discount = input_money*0.05 total_money = input_money - discount print(f'5%할인 지불금액 : {total_money}') else: print('할인없음') #입력 나이에 따라 출력 age = int(input('tell me your age :')) if age < 30: print('welc.. 2024. 1. 26.
파이썬 기본모음_1 □ 튜플 ○ 형태 : () 괄호 - ()를 안써도 튜플형태로 저장됨 ○ 프로그램이 실행되는 동안 값을 유지하고자 할 때 튜플 사용 ○ 수시로 값을 변경해야하면 리스트 사용 t1 = () t2 = (1,) t3 = (1,2,3) t4 = 1,2,3 t5 = ('a','b',('ab','cd')) ○ 튜플은 수정, 삭제 불가함 - 수정을 원할 때 방법 myT = (10, 20, 30) #튜플지정 myTT = list(myT) #튜플에서 리스트 변환 myTT.append(40) #리스트 값 추가 myTTT = tuple(myTT) #리스트 튜플로 변환 ○ 인덱스 활용하여 조회 a = (1,2,3,4,5,'a','b') print(a[0]) print(a[3:]) print(a[:4]) □ 딕셔너리 ○ 대응관계.. 2024. 1. 26.