본문 바로가기

파이썬 프로그래밍/파이썬 크롤링

[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] 네이버 실시간검색어 크롤링 실습 본 포스트는 nomade.kr의 강의를 바탕으로 정리한 포스트입니다. 실습환경 Python Version: 3.6.0 1. 페이지 탐색이번시간에는 네이버 실시간 검색어를 크롤링해 보겠습니다.UI를 보면 실시간 급상승과 함께 1~10위, 11~20위 두파트로 나뉘어 집니다. [오른마우스클릭] - [페이지소스보기] 로 부분을 찾아봅니다.소스를 보고 유일성을 찾아보겠습니다. v체크된 class안에 실시간 검색어가 포함되어 있고, 그밑에 마다 검색어가 있으며검색어는 가 되겠습니다. 우리는 이 힌트를 가지고 크롤링을 해보겠습니다. 2. 크롤링 시작본 코드는 제가 임의대로 짠것이기 때문에 다를수 있습니다. 하지만 결과는 잘나옵니다. html코드 출력requests를 사용하여 html을 응답받아와서 출력합니다.잘나오.. 더보기
[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의 직계중.. 더보기
[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 요청사용방.. 더보기