본문 바로가기

파이썬 프로그래밍

[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의 직계중.. 더보기
[Python] BeautifulSoup4 라이브러리와 기초 (멜론차트 크롤링) requests가 아닌 BeautifulSoup를 사용하는 이유?requests 설치와 라이브러리 포스트 바로가기 간단한 requests를 사용한 코드입니다.requests를 사용해서 https://www.naver.com을 text로 변환하여 html변수에 집어넣고그것을 print한 코드이며 실행을 시켜보면 www.naver.com의 html코드가 잘 출력이 됩니다. 하지만 너무 복잡하죠? BeautifulSoup에서는 이런 복잡한 코드에서 사용자가 원하는 부분을 크롤링 할 수 있게 도와주는 모듈입니다. BeautifulSoup를 사용해서 크롤링을 해보겠습니다. BeautifulSoup를 배우기 전에HTTP 응답- 클라이언트(사용자)가 웹서버(ex. naver, google ...)에 요청을 했을때, .. 더보기
[Python] requests 기초와 beautiful soup를 활용한 크롤링, [크롤링 준비] 본게시글은 HTTP 헤더 이해와 Requests의 설치가 되어있어야 합니다. (바로가기)또한 requests의 라이브러리를 자세하게 살펴보는 게시글 입니다.Requests: HTTP for Humans 공식문서 바로가기- Python에서 기본 라이브러리로 urllib가 제공되지만, 이보다 더 간결한 코드로 다양한 HTTP요청을 할 수 있는 라이브러리 이기 때문에 사용- JavaScript처리가 필요한 경우에 selenium을 고려할 수 있음. 하지만 requests에서도 적용이 가능한 부분도 있으며, 이는 requests 사용시 크롤링 할 페이지에 대해 다방면의 검토가 필요하다고 볼 수 있음.- 크롤링을 할때 요청에서 requests를 사용한다면 가장 효율적인 처리라고 할 수 있음 단순 GET 요청사용방.. 더보기
[Python] 크롤링 기초 개념과 requests를 이용한 기초실습(설치부터) 크롤링(Crawling)1. 특정 페이지에 있는 정보들을 내가 원하는 포맷으로 가져오는것2. WebScrapping을 자동으로 돌아다니며 분석 및 저장등을 하는 행위 정도로 저장할수 있습니다. 쉽게 생각하는 크롤링(Crawling)- 사람들이 웹페이지에 직접 접속해서 정보를 읽어드리는 것과 유사- 인터넷상에 흩어져 있는 자료들을 사람 대신에 프로그램을 통하여 서핑하며 수집과 가공을 하는것- 이때 프로그램 구성에 따라 서핑능력의 차이가 발생하게 되는데 대표적으로 자바스크립트의 처리를 하는지 못하는지의 여부가 있습니다. 크롤링을 하기전 알아야하는 지식HTTP 매서드- GET: 리소스 요청 (크롤링에 주로 사용) => 받아드리는 녀석- POST: 대기 리소스 추가 요청이나 수정/삭제 목적으로 사용(크롤링에 주.. 더보기
[Django] 장고. 템플릿 상속받기 템플릿을 상속받는 이유HTML코드를 보면 부터 까지 중복적으로 사용하는 코드가 많을때 이 부분을 따로 html로 만들고 그대로 해당 코드들을 상속받아 편하게 사용할때 사용합니다. 1. 상속해줄 부모파일 만들기layout.html이라는 파일을 만들어주고 중복적으로 쓰는 코드들을 넣어줍니다.여기서 title과 body부분은 페이지마다 다르기 때문에 {% block %}을 사용합니다. 2. 상속받기메인페이지인 index.html입니다.아까 title은 block해줬었는데요 이부분만 빼고 지워줍니다. {% extends "elections/layout.html %}은 "경로"안에 있는 파일을 extends해서 상속받겠다는 뜻입니다.{% block title %} {% endblock %}사이에 타이틀정보를 넣어.. 더보기
[django] 장고. Page not found 404란? 404페이지 꾸며보기 Page not found 404란?클라이언트가 서버와 통신할 수 있는 상태이지만 서버를 찾을 수 없을때 나오는 오류로서버로 연결할수 없는 오류는 절대 아님. 그외 http 상태 코드@ 1xx (조건부 응답): 요청을 받았으며 작업을 계속한다100(계속): 요청자는 요청을 계속해야 한다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다.101(프로토콜 전환): 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.@ 2xx (성공): 클라이언트가 요청한동작을 수신하여 이해했고 승낙하였으며 성공적으로 처리200(성공): 서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다.201(작성됨): 성공적으.. 더보기