파이썬 웹 스크래핑, 제가 가진 모든 비법을 알려드리겠습니다.

HTML 기초부터 고수들의 스크래핑 비법까지, 모두 알려드리겠습니다.

클래스 소개
난이도
보통
카테고리
웹 프로그래밍 - 프로그래밍
태그
데이터베이스, 파이썬
추천 학습대상
- 파이썬을 배웠는데 어디에 활용할지 고민이라면
- 웹에서 필요한 데이터를 하나 하나 복사 붙여넣기 하고 있다면
- 쇼핑몰 데이터를 몇 초만에 모두 가져오고 싶다면

파이썬 활용 세 번째 시간!



많은 분들이 파이썬 기초 개념까지는 잘 배우지만
어떻게 초보가 아닌 중급자 실력을 가질 수 있는지,
파이썬을 가지고 무엇을 할 수 있는지에 대해
어려움을 겪고 계십니다

그런 분들을 위해 다양하면서도 쓸모 있는
총 8개의 실전 프로젝트를 만들며
실력을 키울 수 있는 강좌를 제작했습니다

세 번째 시간에는 웹 스크래핑과 관련된
제 모든 비법을 공개하려 합니다




웹 스크래핑?


늑대와 일곱 마리 아기 염소라는
동화 이야기를 기억하시나요?


엄마가 집을 비운 사이
일곱 마리 아기 염소만 남아 있는데
아주 못된 늑대가 찾아옵니다

🐺 "나 엄마야, 문 좀 열어줘"

근데 한 아기 염소가
🐐 "우리 엄마 목소리는 그렇게 무섭지 않아!"
하면서 문을 열어주지 않지요

다시 찾아온 늑대가 이번에는 예쁜 목소리로
🐺 "엄마란다, 문 좀 열어주겠니?"
하자 한 아기 염소가 물어봅니다

🐐 "손을 내밀어 보세요"

그러자 이내 발이 하나 쑥 들어오는데,
진한 털에 발톱이 날카로운 발이더라구요

이번에도 한 아기 염소가
🐐 "우리 엄마 손은 아주 하얗단 말이에요"
라며 문을 열어주지 않아요

뽀얀 밀가루를 잔뜩 묻히고
다시 나타난 늑대의 발을 보고,
이번에는 염소들이 속아버렸습니다

문을 열어줬다가... 어떻게 되었을까요?
(결말 스포는 안하겠습니다 ㅋㅋ)


🐺

여기서 늑대는 염소의 집으로 들어가기 위해
총 3번 시도합니다

처음엔 엄마라고 거짓말을 하고,
그 다음엔 예쁜 목소리를 내어보고,
마지막으로 뽀얀 밀가루를 묻힌 발을 위장해
결국 염소의 집에 들어가게 되었습니다

서론이 길었습니다!

웹스크래핑은 마치 창과 방패의 싸움 같이
이러한 과정을 거쳐야 합니다

약한 방패라면 아무 창이나 써도 되겠지만,
튼튼한 방패를 뚫고자 한다면
더욱 날카롭고 정교한 창으로 도전해야 합니다


🐐

그런데 사실 웹 스크래핑에서는
염소와 늑대의 입장이 조금 바뀝니다

우리가 온순한 아기 늑대가 되고,
대상 서버가 우락부락한 근육질의
덩치 크고 뿔도 달린 엄마 염소가 되죠


저 서버를 어떻게든 공략을 해야 해요

이를 위해 여러 접근 방법이 활용되는데,
제 강좌에서는 위에 말씀드린 늑대의 전략을
순서대로 하나씩 모두 설명을 드립니다

아참,
웹 스크래핑과 웹 크롤링은 조금 다릅니다!



스크래핑 VS 크롤링

웹 크롤링은 아재(저 포함)들은 아실 텐데 옛날에
'책책책 책을 읽읍시다'라는 프로그램이 있었어요


여기에서 하이라이트는,
책이 가득한 책장 옆에 카트가 하나를 두고
게스트에게 1분 정도 시간을 줘서
최대한 많은 책을 담아 가져오면
그 책은 모두 게스트 소유가 되는 이벤트였습니다
("황금책"에 대한 설명은 논외로 하겠습니다 ^^)

여러분이 게스트라면 어떻게 하시겠어요?
아마 이것저것 따지지 않고
모조리 책을 최대한 빨리 담으려고 할겁니다


반면에 웹 스크래핑은,
시험 전날 선생님이 하얀 종이를 한 장 주며
여러분에게 어떤 내용이든 필기를 해오라고 합니다

그러면 시험 시간에 그 종이 딱 1장은 펼쳐놓고
시험을 칠 수 있는 거에요

그럼 여러분은 아마도 수업시간에 배운
중요한 내용이나 외우기 어려운 공식,
영어 단어 같은 것들을 참고하기 쉬운 형태로
빼곡히 적겠지요.

이게 바로 웹 스크래핑입니다.
웹 크롤링과 다르죠?



우리가 배울 내용?

다시 말하면 웹 스크래핑
웹사이트에서 내가 원하는 데이터를 추출해서
내가 원하는 형태로 가공하는 행위를 말합니다

예를 들어 네이버 웹툰 페이지에 있는
모든 만화의 제목이나 실시간 TOP10을 가져온다던지,



쿠팡 같은 쇼핑몰에서 딱 내가 원하는
조건에 맞는 상품만 링크와 함께 가져올 수 있죠.


↑상위 1~5페이지 내에서 리뷰가 100건 이상,
평점 4.5점 이상이고 Apple 제품과 광고 상품은
제외한 목록을 가져오는 실습입니다
(절대 Apple이 싫다는 건 아니고 연습용이에요!)

이미지를 다운로드 받는 연습도 해볼 거에요


제가 영화를 굉장히 좋아하는데 어떤 영화를 보면
좋을지 결정장애가 있어서 그냥 최근 5년간 관객 수가
가장 많은 상위 5개 영화, 총 25개 영화 포스터 이미지를
다운받아놓고 그중 아무거나 선택을 하려 합니다

이 이미지를 각각 저장하려면 굉장히 많은 시간과
클릭질이 필요하지만, 스크래핑 기술을 이용하면
몇 줄 안되는 코드로 파일명까지 내가
원하는 대로 저장할 수 있게 되지요

어떤 데이터들은 가져온 뒤 엑셀로 관리 및 추가해야 합니다

그럴땐 간단하게 csv 형태로 파일을 만들면
바로 엑셀에서 열어볼 수도 있어요

네이버 금융에서 코스피 시가총액 순위 정보
모두 가져오는 실습까지 진행해볼 겁니다

그런데 이런 사이트에서는 사람이 아닌
자동화 봇(Bot)이 정보를 빼가는 것을
썩 달가워하지는 않을 수 있습니다

무단으로 정보를 사용할 수도 있거니와,
계속 페이지를 요청하게 되면
그만큼 서버에 큰 부담을 줄 수도 있거든요

그래서 서버에서는 페이지를 볼 수 있는 권한을
주지 않거나 접근을 차단하는 등
다양한 방법으로 방어를 합니다

하지만...


늘 그랬듯 우리는 길을 찾을 겁니다

때론 로그인이 필요하거나 웹페이지에서
어떤 동작을 해야만 내가 원하는 데이터를
가져올 수도 있습니다

동적 웹페이지는 Selenium(셀레니움, 셀레늄)이란
웹 테스트 자동화 프레임워크를 이용해서
직접 브라우저를 자동으로 컨트롤 할 수 있습니다

이전의 방법들이 잘 안 될 때,
Selenium으로 하면 웬만하면 해결이 될 겁니다

가령 구글 무비 페이지에서 인기차트 영화 중
현재 할인 중인 영화 정보만 가져오고 싶은데
여긴 스크롤을 내려야만 다음 목록이 불러와집니다


또는 네이버 항공권은 내가 원하는 일정을 입력하고
항공권 조회 버튼을 클릭하면 한참 로딩한 뒤 목록이 나타나죠

Selenium을 쓸 때도 이런 부분에 대해서는
오류를 줄이기 위해 좀 더 섬세히 접근해야 합니다
(물론 강의에서 모두 알려드립니다)

웹 스크래핑을 배우려면 사전지식이 필요한데요,
기본적으로 웹에 대해서 이해를 해야 하니
간단히 HTML, XPath에 대해서 공부하고,
크롬(Google Chrome)을 활용하기 때문에
크롬 및 개발자도구 이용 방법도 설명드릴 겁니다

스크래핑 과정에 정규식이 필요할 수도 있어서
아주 가볍게 언급하기 때문에 앞부분 이론 설명이
조금 길어서 지루할 수 있지만 이것만 끝나면
다양한 페이지에 대해 
많은 실습이 이루어지므로
조금만 잘 참고 따라와주시면 좋겠습니다


공부할 내용이 많다보니 정리가 안되실 수 있을까봐
WrapUp 시간을 가지구요, 
아무래도 웹스크래핑은
지금까지의 활용편 주제와는 달리 
다른 누군가가 만든
사이트를 대상으로 사용하는 기술이기 때문에
반드시 주의해야 하는 점 역시 다시 한번 알려드립니다

바쁘시거나 핵심만 알고싶다 하시는 분은
이 부분만 봐도 강의 전반적인 내용은 파악 가능합니다

물론 이번에도 퀴즈를 드리지요!
다음 부동산 매물에서 검색한 결과 정보를
직접 여러분이 스크래핑 해오는 시간을 가져보구요,

마지막으로는 프로젝트를 진행합니다


프로젝트 주제는 "나만의 가상 비서" 인데요,
제가 매일 아침에 일어나서 날씨를 확인하고,
주요 뉴스 및 IT 분야 뉴스를 읽는 것을
쉽게 해주는 프로그램을 만들겁니다

하는 김에 1일 1영어 학습을 위해
매일 새로운 영어 회화 지문을 가져와봅시다

클릭 한 번이면 이 모든 정보들이
제가 원하는 형태로 가져와지는 것이죠

굉장히 편하겠죠? ^^

링크를 클릭하면 바로 뉴스 기사를 읽을 수 있게 됩니다

이번 주제에서 다루지는 않지만,
위에서 가져온 데이터를 이메일이나 카톡 등으로
보내는 방법까지 적용한다면 
매일 아침
아주 손쉽게 정보를 얻을 수 있을 겁니다










망설이지 말고 바로 시작하세요



나도코딩

파이썬 기초 문법을 배우신 후
실력을 쌓고 싶으신 분들이라면
지금 바로 웹 스크래핑을 배워보세요

이 강좌 하나면 충분합니다

시작이 반이니까,
나도코딩은 무료니까!


나도코딩 유튜브 바로가기


 

all Icon made by Freepik from flaticon

체험하기
모두 펼치기
교육 과정
모두 펼치기
  • 01
    소개
  • 활용편3 소개
    웹 스크래핑 소개
  • 02
    기본기
  • 크롬
    Requests
    정규식 기본 1
    정규식 기본 2
    User Agent
    BeautifulSoup4 기본 1 (네이버 웹툰)
    BeautifulSoup4 기본 2
    BeautifulSoup4 활용 1-1 (가우스 전자)
    BeautifulSoup4 활용 1-2
    BeautifulSoup4 활용 2-1 (쿠팡)
    BeautifulSoup4 활용 2-2
    BeautifulSoup4 활용 2-3
    BeautifulSoup4 활용 2-4
    BeautifulSoup4 활용 3-1 (다음 이미지)
    BeautifulSoup4 활용 3-2
    CSV 기본 1 (네이버 금융)
    CSV 기본 2
    Selenium 기본 1
    Selenium 기본 2
    Selenium 심화 (네이버 로그인)
    Selenium 활용 1-1 (네이버 항공권)
    Selenium 활용 1-2
    Selenium 활용 2-1 (구글 무비)
    Selenium 활용 2-2
    Selenium 활용 2-3
    Selenium 활용 2-4
    Headless 크롬
    Wrap Up
  • 03
    퀴즈
  • 퀴즈 (다음 부동산)
  • 04
    프로젝트
  • 프로젝트
    오늘의 날씨 (네이버 날씨)
    헤드라인 뉴스 (네이버 뉴스)
    IT 일반 뉴스 (네이버 뉴스)
    오늘의 영어회화 (해커스 영어)
마지막 업데이트|2020년 12월 23일
강의자 소개
안녕하세요. 구름에듀 캡틴 나도코딩입니다. 함께 학습을 시작해봐요!

강좌 후기
무료

평균평점
5.0
난이도
보통
수강기간
평생 무제한