본문 바로가기

2017/07

[Python] 파이썬 List 리스트란? 리스트 예제 1. List란?파이썬의 자료구조 형태중 하나로 리스트는 값을 나열하는것 이라고 정의할 수 있겠습니다.또한 List는 시퀀스데이터 이기도 합니다. 시퀀스는 데이터의 순서를 정하는것을 의미합니다.순서를 가지고 있기 때문에 인덱스(index)를 사용하여 참조할 수 있습니다.인덱스란 문자열이 있으면 번호를 뜻합니다.Ex)문자열 인덱싱a = 'hello' 문자열로 했을때, a[0]을 확인하면 첫번째 문자열인 h가 출력됩니다. 이것을 문자열 인덱싱이라 하며, 시퀀스자료형이기 때문에 가능한 것이죠. 파이썬에서의 시퀀스 자료형은?(순서를 정함)string, list, tuple 시퀀스 자료형이 아닌것은?(순서를 정하지 않음)set, dict 1.1 List 만들어보기1list_name = [1,2,3,4,5,6]cs.. 더보기
[Python] 자료구조와 파이썬 자료구조 일반적인 자료구조 (Data Structure)란?자료구조는 전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법입니다.즉 자료를 Data라고 할 수 있으며, 자료(Data)의 집합을 의미하고, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한것 이라고 할 수 있습니다. 자료구조를 사용하는 이유?당연한 이야기겠지만 자료를 더 효율적으로 저장, 관리하기 위하여 사용하고 잘 선택된 자료구조는 실행시간단축, 메모리용량의 절약등의 이익을 볼 수 있습니다. 자료구조의 선택 기준은?- 자료의 처리시간- 자료의 활용 빈도- 자료의 크기- 프로그램의 용이성- 자료의 갱신 정도 등이 있습니다. 파이썬의 기본 자료구조(revision.. 더보기
[Python] 네이버 실시간검색어 크롤링 실습 본 포스트는 nomade.kr의 강의를 바탕으로 정리한 포스트입니다. 실습환경 Python Version: 3.6.0 1. 페이지 탐색이번시간에는 네이버 실시간 검색어를 크롤링해 보겠습니다.UI를 보면 실시간 급상승과 함께 1~10위, 11~20위 두파트로 나뉘어 집니다. [오른마우스클릭] - [페이지소스보기] 로 부분을 찾아봅니다.소스를 보고 유일성을 찾아보겠습니다. v체크된 class안에 실시간 검색어가 포함되어 있고, 그밑에 마다 검색어가 있으며검색어는 가 되겠습니다. 우리는 이 힌트를 가지고 크롤링을 해보겠습니다. 2. 크롤링 시작본 코드는 제가 임의대로 짠것이기 때문에 다를수 있습니다. 하지만 결과는 잘나옵니다. html코드 출력requests를 사용하여 html을 응답받아와서 출력합니다.잘나오.. 더보기
[Django] 프로젝트 초기 세팅 (static에 js, css 넣어 관리하기) 본 실습에 있어 장고의 설치와 프로젝트, 앱만들기가 되어있어야 실습이 가능합니다.앱과 프로젝트 이름은 사용자 임의대로 만드셔도 무관합니다. 1. 장고설치 바로가기2. 장고의 앱만들기 바로가기 지금 본 실습은 오픈소스 디자인을 가져와서 장고에 적용하고, css와 JavaScript를 어떻게 관리하는지 알아보는 실습입니다. 아래의 이미지는 제가 가져다가 쓰려는 오픈소스 입니다.주소를 보시면 제가 다운받아온 디자인 입니다. 이 이미지는 제가 장고에 옮겨서 성공적으로 적용한 이미지입니다.주소를 보시면 localhost로 되어있죠. 1. 프로젝트 Settings.py에서 세팅하기 INSTALLED_APPS에 자신이 추가한 앱 이름을 추가합니다. 자신이 동적파일 안에 추가할 디렉토리 주소입니다.이렇게 설정하면 앱안.. 더보기
[Python] 크롤링 예제. Lv3 자바스크립트 렌더링 크롤링 풀이 본 게시글은 nomade.kr의 문제를 보고 풀이한 게시글입니다. 문제주소https://askdjango.github.io/lv3/ 문제 화면여기서 list 제목만 출력해 보겠습니다. 1. 페이지 살펴보기[오른마우스 클릭] - [페이지소스보기]를 선택하여 확인한 결과 자바스크립트로 보내주고 있는 것을 확인하였습니다. 그렇다면 이 자바스크립트를 가지고 와서 출력하면 되겠네요.주의사항BeautifulSoup는 해당 자바스크립트 부분을 일반 문자열로 인식하기 때문에 따로 가져와서 출력해줘야 합니다. 123456import re #정규표현식import requests url = 'https://askdjango.github.io/lv3/'html = requests.get(url).textprint(html)c.. 더보기
[Python] 크롤링 예제. Lv2 Ajax 렌더링 크롤링 풀이 본 게시글은 nomade.kr의 문제를 보고 풀이한 게시글입니다. 문제 주소https://askdjango.github.io/lv2/ 1. 페이지 탐색크롤링할 페이지 입니다. Lv1과 디자인은 똑같네요 [마우스 오른쪽 클릭] - [페이지 소스보기] 로 건질것이 없는지 찾아봅니다.블록이 보이시나요? HTML단에서는 안나오네요 이럴땐 개발자 도구모드를 사용합니다. 이렇게 파트의 블록을 보며 따라가줍니다 벌써 찾아버렸네요. 여기 숨어있었습니다.우리는 여기에 있는 이녀석을 크롤링해 보겠습니다. 먼저 이 페이지의 특징은 html에 보여지지 않고 숨어있기 때문에 이것을 꺼내서 확인해보겠습니다.우측에 네트워크 탭을 선택하고 새로고침을 누르면 우측 하단처럼 시간초 별로 서버에서 응답하는 목록을 확인할 수 있습니다. 우.. 더보기
[Python] 크롤링 예제. Lv1 단순 HTML 크롤링 풀이 본 게시글은 nomade.kr에서 제공하는 크롤링 예제를 가지고 풀이한 게시글 입니다. 문제주소https://askdjango.github.io/lv1/ 1. 페이지 탐색이 페이지의 리스트들을 크롤링 하려고 합니다.먼저 탐색하기 위하여 마우스 [오른쪽클릭] - [페이지소스보기]를 열어봅니다. 너무나도 크롤링하기에 감사한 쉬운난이도의 페이지 입니다. 이럴경우 개발자도구 필요없이 바로 코드를 사용하겠습니다. 코드12345678import requestsfrom bs4 import BeautifulSoup response = requests.get('https://askdjango.github.io/lv1/') print(response)print(response.text) Colored by Color Sc.. 더보기
[Python] Pillow 이미지 붙이기 예제. 웹툰 전부 붙이기 본 게시글은 먼저 이미지 붙이기를 선행학습 하셔야 이해하기 수월합니다. [Python] Pillow를 활용한 이미지 썸네일/다운로드 처리 크롤링 [Python] requests 기초와 beautiful soup를 활용한 크롤링, [크롤링 준비] 풀이1. 다운로드가 잘되었나 확인해보기코드1Image(filename='20170529163407_0ed8a697d896451fee4bc3642fb46db8_IMAG01_1.jpg')cs 확인잘 나오네요. 따로 파일이름을 지정해주지 않았기 때문에 원본의 이미지이름 그대로 다운받아 왔습니다. 그럼 이미지 이름은 제가 어떻게 알았을까요? 개발자도구 모드에서 따라가서 찾아냈습니다. 혹은이렇게 열어보면 가장 마지막에 다운된 사진을 확인할 수 있습니다. 2. 다운받은 이미.. 더보기
[Python] Pillow를 활용한 이미지 썸네일/다운로드 처리 크롤링 들어가기전크롤링할 대상- HTML문서 + JSON- 이미지 (이번 포스트에서 다룰 파트)- PDF, EXCEL등 여러가지 정적 파일 웹에서 자주 쓰이는 이미지 포맷- jpg: 주로 이미지 저장할 때이미지 품질 옵션이 있으며 0~100 까지 있음- gif: 움직이는 이미지. 저품질 (저품질인 이유는 gif에서 지원하는 팔레트가 적기 때문에)- png: 투명지원되는 이미지 포맷 이미지 크롤링 순서(크게보기)1. 이미지 다운받기2. 고화질 이미지를 다운받더라도, 경우에 따라 작은 용량으로 줄일 필요가 있음-> 이것을 썸네일 처리라고 함3. 대개 여러개의 파일로 나뉘어져있음-> 이럴경우 이미지 합치기Ex) 웹툰 (웹툰의 이미지가 하나의 파일일 경우, 로딩에 긴 시간이 필요하므로 나뉘어서 올려짐)4. 이미지를 다.. 더보기
[Python] 크롤링 연습문제. reddit 크롤링 풀이 이번 포스트에서는 html.Parser로 파싱한 후에 BeautifulSoup4를 사용하여 www.reddit.com 을 크롤링 해보겠습니다. 실습환경 버전Python 3.6.0BeautifulSoup(4.5.3)requests(2.12.4) 탐색오늘 제가 크롤링 해볼 www.reddit.com의 모습입니다. 오늘 저는 저기서 타이틀만 가져와서 목록에 뿌려주려고 합니다.제가 생각해놓은 순서는 이렇습니다.1. 단순 GET요청2. html화면에서 쪼개줄 타이틀 찾기3. html.parser를 통하여 파싱후 타이틀부분 select 일단 해보겠습니다. 1. requests를 사용하여 서버의 응답확인requests가 무엇인지 궁금하신분 requests 설치부터 라이브러리 사용 바로가기 : p의 title의 직계중.. 더보기