본문 바로가기

Category

(15)
HTML 분석 이라는 태그가 존재할 때, from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen('http://pythonscraping.com/pages/warandpeace.html') bs = BeautifulSoup(html, 'html.parser') findAll 함수를 사용하면 태그에 들어있는 텍스트만 추출할 수 있다. nameList = bs.findAll('span', {'class': 'green'}) for name in nameList: print(name.get_text()) find() & findAll() tag 매개변수: 태그 이름인 문자열을 넘기거나, 파이썬 리스트를 넘김. attributes 매개변수..
Headless Chrome HeadLess Chrome은 브라우저를 띄우지 않고 크롤링을 할 수 있도록 크롬이 지원해주는 기술이다! 크롬 버전 59이상부터 사용이 가능하다. https://beomi.github.io/gb-crawling/posts/2017-09-28-HowToMakeWebCrawler-Headless-Chrome.html Headless 크롬으로 크롤링하기 · GitBook Headless라는 용어는 '창이 없는'과 같다고 이해하시면 됩니다. 여러분이 브라우저(크롬 등)을 이용해 인터넷을 브라우징 할 때 기본적으로 창이 뜨고 HTML파일을 불러오고, CSS파일을 불러와 어떤 beomi.github.io 기존의 크롤러에 간단히 옵션만 적용해주면 된다. from selenium import webdriver #Hea..
Selenium 기본 알기 https://www.selenium.dev/ Selenium Selenium automates browsers. That's it! www.selenium.dev Selenium은 동적 브라우저를 크롤링할 수 있도록 하는 기술이다. #드라이버 로드 테스트 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time #드라이버 생성 및 경로 설정 chromedriver = '설치경로' driver = webdriver.Chrome(chromedriver) #크롤링할 사이트 driver.get("URL") drivr.quit() 이렇게 호출한 후 셀레니움을 통해 몇 가지 테스트를 진행할 수 있다. 예를 들..
파이썬 크롤링에 필요한 기본 개념들 크롤링을 위한 HTML 구조 HTML은 웹페이지 구조를 나타내기 위한 언어로 태그로 구성되어 있다. 태그는 시작태그와 종료태그로 만들어진다. 내용 속성명과 속성값이 있을 수 있다. 티스토리 HTML에는 많은 태그가 있지만, 이 중 크롤링에 자주 사용되는 태그는 다음과 같다. 태그명 역할 div 구역 나누기 a 링크 h1 제목 p 문단 ul, li 목록 태그는 부모태그와 자식태그가 있다. 여기서 div 태그는 a 태그의 부모태그이고, a 태그들은 div 태그의 자식 태그들이다. # 라이브러리 import requets, BeautifulSoup import requests from bs4 import BeautifulSoup #웹페이지 가져오기 res = requests.get('웹사이트 URL') #re..
JOIN 지금까지 하나의 테이블을 다루는 작업을 진행했다면, 이제부터는 두 개의 테이블을 묶어볼 것이다. 이렇게 두 테이블을 묶어 하나의 결과를 만들어 내는 것을 조인(join)이라고 한다. INNER JOIN 우리가 조인이라 부르는 것은 대부분 내부 조인을 의미한다. 일대다 관계(1 : N) 한쪽 테이블에는 하나의 값만 존재해야 하지만, 연결된 다른 테이블에는 여러 개의 값이 존재할 수 있는 관계를 일대다 관계라고 말한다. 여기서 회원테이블의 아이디를 PK, 구매 테이블의 아이디를 FK로 설정하여 두 테이블의 조인을 맺을 수 있다.(PK-FK 관계) 이너 조인의 기본 형식은 다음과 같다. SELECT FROM INNER JOIN ON [WHERE 검색 조건]; 구매 테이블에서 GRL 아이디를 가진 사람이 구매한..
MySQL 데이터의 형식 데이터 형식을 제대로 이해하면, 효율적으로 SQL을 활용할 수 있다. MYSQL에서 제공하는 데이터형을 먼저 알아보자. 정수형 데이터 형식 바이트 수 숫자 범위 TINYINT 1 -128 ~ 127 SMALLINT 2 -32,768 ~ 32,767 INT 4 약 -21억 ~ 21억 BIGINT 8 약 -900경 ~ 900경 나이를 지정할 때 TINYINT를 사용하기도 한다. 키의 경우 127CM를 넘는 사람들이 많기 때문에 TINYINT를 사용하면 범위가 부족하다. 이럴 때, 0부터 범위가 시작되는 UNSIGNED 예약어를 사용하면, 이를 해결할 수 있다. USE market_db; CREATE TABLE member (mem_id CHAR(8) NOT NULL PRIMARY KEY, mem_name V..
백준 문제 풀어보기 2875: 대회 or 인턴 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다. 백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다. 여러분은 여학생의 수 N, 남학생의 수 M, 인턴쉽에 참여해야하는 인원 K가 주어질 때 만들 수 있는 최대의 팀 수를 구하면 된다. N+M-K명만 대회에 참여할 수 있다! 6 10 3 n, m, k = map(int, input().s..
구현: 시뮬레이션과 완전 탐색 구현이란, 머릿속에 있는 알고리즘을 실제 코드로 바꾸는 과정이다. 하지만, 알고리즘 대회에서 구현 유형은 풀이를 떠올리는 것은 쉽지만, 코드로 옮기기는 어려운 문제를 지칭한다. 알고리즘은 간단하지만, 코드가 지나칠만큼 길어지는 문제 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제 적절한 라이브러리를 찾아서 사용해야 하는 문제 또한, 일반적으로 알고리즘 문제에서의 2차원 공간은 행렬(matrix)를 의미한다. 시뮬레이션 및 완전 탐색 문제의 경우 2차원 공간에서의 방향 벡터가 자주 활용된다. # 동, 북, 서, 남 dx = [0, -1, 0, 1] dy = [1, 0, -1, 0] # 현재 위치 x, y = 2, 2 for i in ra..