본문 바로가기

파이썬 프로그래밍

[Python] 네이버 검색 크롤링 실습 및 풀이 본 포스트는 nomade.kr에서 나온 문제를 보고 직접 풀이한 포스트입니다. 네이버에서 플래닛코스터를 검색했을때 목록을 출력해 보겠습니다.플래닛 코스터는 제가 디자인감각과 창의성을 키우기위한 목적으로 시작한 롤러코스터게임입니다. 1. 살펴보기 검색했을때 주소를 살펴보면https://search.naver.com/search.naver?sm=tab_hty.top&where=post&query=%ED%94%8C%EB%9E%98%EB%8B%9B%EC%BD%94%EC%8A%A4%ED%84%B0&oquery=%ED%8C%8C%EC%9D%B4%EC%8D%AC+%EC%9E%98&ie=utf8&tqi=TUTyflpVuE8sssGoVu0ssssssUZ-259866이렇게 됩니다.기본 주소는 https://search.n.. 더보기
[Python] 파이썬 함수 기초와 개념 함수(Functions)- 코드중복을 제거하기 위한 목적으로 사용- 코드의 중복을 제거하기 위해서 가장 필요한 문법- 빌트인함수(Builtin Functions): print, range등- 반환값이 없는 함수는 None값을 리턴(반환)함함수의 구성- 1개의 함수명(필수): 이름- 0개 이상 인자값(옵션): 필요한 정보- 1개의 반환값(옵션): 결과를 돌려받음 코드로 알아보는 함수의 예제12345678def exam(num):#함수명: exam, num받을 인자(Parameter) #인자를 반환하기 위한 result1 = num * 2 result2 = result1 + 2 result3 = result2 - 10 return result3#반환값csexam이라는 함수를 만들어 봤습니다.이 함수를 어떻게.. 더보기
[Python] 파이썬 짝수단을 구구단 출력하기(2단,4단,6단) 입력한 구구단을 출력하기는 따로 게시글이 있습니다 (클릭) 문제) 구구단의 2,4,6,8,10단을 출력하는 구구단을 만들어라. 구구단의 알고리즘을 알고있다면 매우 쉬운 문제입니다. 어떻게 풀어나가야 할까요? 구구단에 쓰이는 반복문은 2개입니다. X * Y 이렇게 두개죠?우린 이X를 2~10까지 2씩 증가시키면 되겠습니다. 코드로 알아보죠1234for x in range(2, 11 ,2): print("===={}단====".format(x)) for y in range(1,10): print("{} * {} = {}".format(x,y,x*y))cs 1번째줄에 왜 11까지인가 의문을 품는분들이 계실수 있습니다. 이유는 파이썬에서 범위를 정할때 x이상~y미만 으로 알아듣기 때문에 미만은 포함을 하지 않죠.. 더보기
[Python] 예제로 보는 파이썬 사전(dict) Dict(사전형) 특징- Key와 Value의 쌍으로 구성된 집합(집합 예제 클릭)- Key는 고유값이며 중복을 허용하지 않음- 중괄호{ } 내에 콜론 : 으로 Key / Value를 구분 사전 생성(문법)이런식으로 간단하게 생성할 수 있습니다.Key: Value는 쌍으로 되어있고, Key는 절대 중복이 될수 없지만 값은 중복이 될 수 있습니다. 사전의 사용정답은 X입니다. 정답은 O 본 게시글은 nomade.kr의 강의를 참고하여 쓴 글입니다. 더보기
[Python] 예제로 보는 파이썬 Tuple 기초 개념 Tuple의 특징- list와 거의 비슷하지만 변경 불가능(Immutable)한 특성을 가지고 있음 (변경 가능한 특성: mutable)(list 예제를 통한 개념정리 바로가기)- 슬라이스와 인덱싱등은 지원을 하지만 append, pop, remove등은 지원하지 않음.한마디로 말해 값을 가져올수 있지만 추가, 수정, 삭제가 불가능 문법( ), tuple( ), tuple(iterable) 1number = (1,2,3,4,5)cs이런식으로 생성 가능 예제를 보면 ( ) 를 하지 않아도 출력은 똑같은 tuple로 출력하는것을 보아 ( )를 사용하여 생성하는것도 맞지만 때에따라서 생략도 가능하다고 볼 수 있겠습니다. Tuple은 정말 Immutable일까?(변경불가능한 특성)list에서 했던것처럼 값을 추.. 더보기
[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.. 더보기