본문 바로가기

분류 전체보기226

[데이터 수집] 웹 스크래핑 예제 - 네이버 뉴스 페이지 언론사 목록, 네이버 웹툰 제목 가져오기, 다음 영화 사이트에서 영화 포스터 다운로드 [실습] 네이버 뉴스 페이지 언론사 목록 가져오기 print(result.children) 은 안 나오는데, news_list = [ list(tag.children)[0] for tag in result] 는 나오는 이유: BeautifulSoup 의 라이브러리인 find_all = 기준에 맞는 태그를 모두 가져와 리스트 타입으로 반환하는 함수이다. print(type(result)) 출력: 는 list처럼 취급할 수 있다는 것이다. 그 값을 인덱싱 하기 위해서는 for문에 돌려 값을 빼와 사용해야하기 때문에, 리스트 형태로 묶인 것이 문자열 형태로 바뀌게 되어 다시 list 형태로 만들어 주는 것이다. # 언론사에 이름만 가져와서 저장 -> 리스트에 저장 import re import requests.. 2023. 11. 1.
[데이터 수집] 웹 스크래핑 - 2 BeautifulSoup 패키지 import requests from bs4 import BeautifulSoup 설치 parser 종류 - html.parser : 파이썬 기본제공 - lxml : 기본값 - xml - html5lib from bs4 import BeautifulSoup # html.parser soup = BeautifulSoup('','html.parser') print('html.parser') print(soup) # html.parser # 강제 형변환 #lxml soup = BeautifulSoup('','lxml') print('lxml') print(soup) # lxml # 강제 형변환 기본 사용법 - text: 태그 없이 안에 내용만 출력 - name: 태그 이름 출력.. 2023. 10. 31.
[데이터 수집] 정규 표현식(Regular Expression) -3 표현식 2는 결과로 반환하지 않는다. 전방탐색 - 긍정 전방탐색: 표현식1(?= 표현식2) - 부정 전방탐색: 표현식1(?! 표현식2) 포함하지 않을때 import re # 긍정 전방탐색 # url 에서 프로토콜 이름만 검색 p = re.compile('.+(?=:)') # dot(.) 메타문자가 줄바꿈 문자(\n)를 포함, 모든 문자와 일치하는지 검색 m = p.search('http://www.google.com') print(m.group()) # http # 부정 전방탐색 # 파일 이름의 확장자 중에서 'bat' 파일만 제외하고 추출 file_names = ['autoexe.bat','python.exe','sysinfo.cf'] p = re.compile('[a-zA-Z]+\w*[.](?!bat.. 2023. 10. 31.
[데이터 수집] 정규 표현식(Regular Expression) -2 re 모듈 compile() 모듈 사용하여 정규표현식 컴파일 impor re p =re.compile('ab*') 대표적인 모듈 - match() : 문자열의 처음부터 검색하여 일치여부 판단 - search() : 문자열의 전체를 검색. 중간에라도 매치되면 결과를 반환한다 - findall() : 정규식과 매치되는 모든 문자열 리스트로 반환 - finditer() : 정규식과 매치되는 모든 문자열 튜플로 반환 # match() m1 = p.match('python') print(m1) # m3 = p.match('3 python') print(m3) # None # search() m = p.search('3 python') print(m.group()) # python # findall() p = re.. 2023. 10. 31.
[데이터 수집] 정규 표현식(Regular Expression) -1 정규표현식: 복잡한 문자열을 처리할때 사용하는 기법 # 정규표현식: 비사용 방식 data = """ park 800904-1234567 kim 841204-1034562 """ result = [] for line in data.split('\n'): word_result = [] for word in line.split(): if len(word) == 14 and word[:6].isdigit() and word[7:].isdigit(): # isdigit() # 숫자 여부 체크 word = word[:6] + '-' + '*******' word_result.append(word) result.append(''.join(word_result)) # 이름, 주민번호를 다시 공백으로 묶음 print('.. 2023. 10. 31.
[백준알고리즘] 10807번 개수 세기 문제풀이최근 표준모듈을 배우다보니 문제에 총 N개의 정수가 주어졌다고 하여 import random 을 해서 random을 사용하여 풀어야 하는 문제로 알았었다..map(function_name, list data) : 결과를 리스트로 리턴map 반환값 =  map객체 -> 해당 자료형을 list / tuple로 형 변환시켜주어야 한다.n = int(input())li = list(map(int,input().split()))v = int(input())print(li.count(v))# map은 참조값을 보이게 하기 때문에 list안에 감싸야한다 2023. 10. 31.
[데이터 수집] Web 구성요소 HTML (Hypertext Markup Language) 웹문서를 구성하는 요소 : HTML(정적인 요소), CSS(디자인적 요소), JavaScript(반응형 웹) 2023. 10. 30.
[데이터 수집] 웹 스크래핑 -1 Web Crawling: 인터넷에서 웹페이지를 자동 탐색하고 수집하는 과정 Web Scrapping: 웹 페이지 내에서 원하는 정보를 추출하는 기술을 말함(즉 구조에 맞춰 코드를 가져오는 것을 말한다.) robots.txt crawling 적법성 여부 확인 웹 사이트에 웹 크롤링 봇들의 접근에 제약을 두기 위한 규약이다. 밑에 사진은 https://www.google.co.kr/robots.txt 안에서 확인한 본문이다. 구글 사이트에서 크롤링 가능한 범위를 규정해 놓았다. Request 요청의 종류 - GET (정보를 가져오기 위해 요청) - POST (새로운 정보를 보내기 위해 요청) - PUT (수정할 정보를 보내기 위해 요청) - DELETE (정보를 삭제하기 위해 요청) response = re.. 2023. 10. 30.
[백준알고리즘] 11021번 A+B - 7 문제풀이이 문제는 계속 제대로 썼다고 생각했는데 정답이 아니어서 엄청 짜증이 났던 문제.f-string은, print함수 안에서 문자열을 작성하기 위해 사용되며 따옴표 앞에 f를 붙이고 사용한다. { } 괄호 이외에는 일반 문자열처럼 고정된 값으로 출력되고  { } 안의 수는 그때그때의 변수의 값이 출력될 수 있다.1. 틀린 풀이t = int(input())for i in range(1,t+1): a, b= map(int, input().split()) print(f"Case #{i}: {a+b}")2. 정답 풀이T = int(input())for i in range(T+1): a, b= map(int, input().split()) print(f'Case# {i}: {a+b}') .. 2023. 10. 24.