전체 글 (142) 썸네일형 리스트형 Beautifulsoup를 통해 HTML 파싱하기 BeaurifulSoup 파이썬으로 웹을 크롤링 한 후 HTML로 부터 원하는 데이터를 가져올 떄 , parsing 을 효울적으로 수행하는 모듈입니다여기서 parsing이라는 단어의 의미는 HTML을 분석한다는 의미로 해석됩니다 일단 BeautifulSoup 를 설치하기 위해선 pip install beautifulsoup4 명령어를 터미널에 입력하면 설치가 가능합니다. from bs4 import BeautifulSoup 설치가 완료 되면 위에 문장을 통해 해당 모듈을 import 할 수 있게 되는데, 그 다음 크롤링을 원하는 웹페이지의 url을 urllib 모듈을 통해 소스를 가져올 수 있습니다 import urllib.request import urllib.parse # web_url에 원하는 웹의.. 데이터 크롤링 데이터 크롤링? 인터넷을 포함한 데이터가 방대해 지면서 그 것을 활용할 필요서이 높아졌습니다. 그런 정보들을 사용자가 분석하기 쉽게 끔 데이터를 수집하는 행위를 크롤링이라 하고 크롤링 하는 프로그램을 크롤러 라고 말합니다. 크롤링의 원리 웹페이지는 HTML 문서로 작성이 되어 있고 이를 참조할 수 있는 CSS파일과 상호작용을 위한 JS파일로 이루어져 있는데 이런한 웹페이지 구성의 TAG 형식을 찾아서 원하는 데이터를 뽑아내는 것을 크롤링이라 합니다 물론 다른 언어에서 크롤링은 가능하지만 파이썬 모듈을 통한 크롤링을 포스팅에서 다뤄보려 합니다 INDEX 인덱스란? 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 목차/색인 등과 유사한 개념이다 . 인덱스는 테이블을 기반으로 선택적으로 생성할 수 있는 구조 인데테이블에 인덱스를 생성하지 않아도 여러 개를 생성해도 된다 인덱스의 목적은 검색성능의 최적화를 목적으로 하지만 INSERT, UPDATE , DELETE 와 같은 DML 문장 작업은 INDEX 를 함께 변경해야 하기 때문에 오히려 느려질 수 있다는 단점이 있다 인덱스 확인 쿼리 인덱스를 일반적으로 육안으로 봤을 때 인덱스를 거쳤는지에 대한 유뮤 확인이나 참조 확인을 할 수 가 없는데 EXPLAIN 문법을 활용하여 SELECT 쿼리를 날렸을 때 인덱스를 탔는지에 대한 궁금증을 해소할 수 있다. MySQL NULL 관련함수 NULL ? NULL 값은 아직 정의되지 않은 값을 의미하며 NULL 은 절대 0또는 공백이 아니다 NULL 관련 함수 일반형 함수 함수 소개 NVL(표현식1, 표현식2)/ ISNULL(표현식1, 표현식2) 표현식1의 결과 값이 NULL 이면 표현식2 의 값을 출력한다 단 표현식 1과 표현식2의 결과 데이터 타입이 항상 같아야만 한다 NULL 관련 함수중 가장 많이 사용한다 NULLIF (표현식1, 표현식2) 표현식1이 표현식 2와같으면 NULL 을 아니면 표현식 1 값을 RETURN COALESCE(표션식1.....2.....) 임이의 개수의 표현식에서 NULL 값이 아닌 최초의 표현식을 나타낸다 SQL 문법 활용 (3) 1. ON DUPLICATE KEY UPDATE = DB 에서 대량에 데이터를 등록할때 키값이 있어도 INSERT를 하는 과정에서 문제가 발생할 수 있다 따라서 키값이 있는 경우에는 INSERT를 해주는 방법도 있찌만 UPDATE를 해주는 방법을 통해 에러를 줄인다 ON DUPLICATE KEY UPDATE 구문은 UNIQUE 한 KEY 값이 기준이 되어야만 사용할 수 있다 1 2 3 4 5 6 7 8 9 10 CREATE TABLE USERS ( NAME VARCHAR(25), EMAIL VARCHAR(255) ); ALTER TABLE USERS ADD UINQUE (NAME); INSERT INTO USER (NAMEM, EMAIL) VALUES ('TEZ','TEZ.gmail.com') ON DU.. SQL 문법 활용(2) 1. CONVERT (데이터 형변환) = 표현하고자 하는 값을 해당 데이터 형식으로 바꾸는 것을 의미한다 ex) CONVERT 함수를 통해 문자열 데이터의 문자셋을 UTF-8 로 변환하는 문장 / 인수의 타입 변환 1 2 3 4 5 6 SELECT CONVERT("ABC" USING UTF-8) // 문자열을 UTF-8 로 인코딩 SELECT AVG(AMOUNT) AS 'SALES' CONVERT(AVG(AMOUNG), int) from buytbl // 해당 인수를 int type으로 형변환 2. AES_ENCRYPT / AES_DECRYPT (암호화 , 복호화 ) 암호화와 복호화를 하는 방식은 여러가지가 있는데 그중 AES를 사용하여 가정한다면 아래와 같다 AES_ENCRYPT (암호화 값 , 암호).. SQL 문법 활용(1) 1. SET 구문 = 프로시저에 변수나 파라미터에 값을 저장하려면 보통 2가지 방법이 있는데 SET을 이용하거나 SELECT 를 이용해 값을 넣는 방법이다 SET 을 이용하는 경우는 SET 변수 =100 ; 이러한 형식으로 값을 넣지만 SELECT 는 조건이 필요하다 SELECT로 값을 받아오려면 사용자 정의 변수를 사용해야하는데 3가지 조건이 필요하다 1. 변수 이름은 @ 로 시작한다 2. DECLARE는 해주지 않는다 3. = 이 아니라 := 를 사용한다 ex) SELECT @변수 1:=필드 FROM [테이블 명] 2. PREPARE /EXECUTE 구문 동적 SQL과 같은 경우 미리 쿼리문장을 준비한 후에 나중에 실핼하는 것을 의미하는데 이를 PREPARE와 EXECUTE로 구현할 수 있다. PRE.. 절차형 SQL 주요 문법 절차형 SQL 에서는 일반 프로그래밍 언어와 같이 제어문/반복문 사용이 가능하다 1. 조건문 : 일반적으로 IF - THEN - ELESIF -ELSE 구조를 사용하거나 CASE ~ WHEN ~ THEN 구조를 사용한다 1 2 3 4 5 6 7 8 9 10 11 12 13 IF x = 1 THEN sequence_of_statements_1; ELSIF x = 2 THEN sequence_of_statements_2; ELSIF x = 3 THEN sequence_of_statements_3; ELSIF x = 4 THEN sequence_of_statements_4; ELSIF x = 5 THEN sequence_of_statements_5; ELSE sequence_of_statements_N; EN.. 이전 1 ··· 14 15 16 17 18 다음