일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 인공지능
- 카카오
- Python
- OpenAPI
- 업무자동화
- 딥러닝
- 파이썬게임만들기
- 파이썬
- 오늘배워오늘쓰는
- Ai
- 기본기
- 머신러닝
- 크롤링
- 독학
- 구글일정
- Quickstart
- 간단한파이썬게임
- 웹크롤링
- kakao
- 소스코드
- Selenium
- STT
- 자동화
- 음성인식
- 파이썬간단한게임
- 파이썬독학
- 구글캘린더
- 빅데이터
- 구글
- 파이썬게임
- Today
- Total
ai-creator
웹크롤링 - 웹크롤링 이란? (1/3) 본문
# 웹크롤링이란?
# Web의 통신 구조
인터넷 익스플로러나 크롬등을 웹 브라우저라고 한다. 우리가 인터넷을 할때 순서를 생각해보자.
먼저 웹브라우저를 열어서 원하는 주소를 입력한다. 여기서는 www.naver.com을 입력했다고 가정해보자.
위의 홈페이지는 내 컴퓨터에 있는 것이 아니라 홈페이지들을 저장하고 있는 웹서버에서 가지고 온다. 내 컴퓨터가 아닌 멀리 웹 서버에 있는 홈페이지가 과연 어떻게 내 컴퓨터에서 보이는지 간단하게 살펴보자.
Step1) 우리가 인터넷을 할때 웹 브라우저를 실행하면 가장 먼저 웹 브라우저는 해당 주소의 홈페이지를 저장하고 있는 웹서버를 찾아가 홈페이지를 달라고 요청한다.
Step2) 홈페이지 요청을 받은 웹 서버는 상대방이 원하는 홈페이지 소스 코드를 인터넷을 통해서 상대방 웹 브라우저에게 보낸다.
여기서 중요한 부분이 있다. 웹서버에서 PC의 웹브라우저로 홈페이지를 보낼 때 완성된 홈페이지를 보내는 것이 아니라 HTML로 된 소스 코드 형태로 보낸다는 것이다.
‘크롬’에서 알고 싶은 내용에 커서를 두고 오른쪽 마우스 > 검사를 하면 웹페이지 구성 정보가 나오는 것을 확인할 수 있다.
오른쪽 상단에 있는 소스코드를 웹브라우저가 받아서 홈페이지 형태로 만들어서 보여준다. 필요한 곳에 그림도넣고 플래시 이미지나 동영상도 넣어서 예쁘게 홈페이지를 만들어준다.
웹 크롤러의 원리가 여기에 있다. 홈페이지의 소스 코드에 글자 관련된 내용이나 그림 관련된 내용도 들어 있고 동영상 관련된 소스도 들어 있다. 그래서 만약 내가 글자를 크롤링 하고 싶은 경우 소스 코드에서 글자 부분만 모으면 되고 그림을 모으고 싶은 경우 그림 관련 부분만 골라내면 된다. 즉, HTML을 통해서 필요한 정보를 스크래핑 한다고 요약할 수 있다.
# 웹크롤링 순서
Step1) 웹페이지 정보를 가져온다. => python에서는 requests 라이브러리를 사용한다.
Step2) HTML소스를 파싱하여 원하는 정보를 얻는다. => python에서는 beautifulsoup 라이브러리를 사용한다.
(참고) 다양한 파이썬 라이브러리
1. beautifulsoup보편적으로 사용하기 용이한 라이브러리 html 가독성이 좋아 대부분 잘 읽힌다. 2. selenium스크래파이, lxml, 뷰티풀 숲 등의 다른 라이브러리가 하지 못하는 동적할당페이지를 유일하게 크롤링 할 수 있다. Q) 동적할당페이지란?페이지를 웹상에서 클릭했을 때 코드가 전혀 보이지 않는 구조를 갖고 있는 페이지 하지만 셀리니움은 속도면에서 새로운 페이지를 띄워야 하니 느리다. |
저작물의 저작권은 작성자에게 있습니다.
공유는 자유롭게 하시되 댓글 남겨주세요~
상업적 용도로는 무단 사용을 금지합니다.
끝까지 읽어주셔서 감사합니다^^
'오늘 배워 오늘 쓰는 OpenAPI > 프로젝트' 카테고리의 다른 글
웹크롤링 - Beautiful Soup 사용법 + 영화 리뷰 크롤링 (3/3) (13) | 2020.05.09 |
---|---|
웹크롤링 - HTML 이해 (2/3) (1) | 2020.05.09 |
OpenAPI 활용 - 8시 뉴스 요약 봇 프로젝트 (2) | 2020.05.04 |
OpenAPI 활용 - 날씨 정보를 사용한 맛집 추천 프로젝트 (41) | 2020.02.22 |
OpenAPI 활용 - 일정 도우미 프로젝트 (10) | 2020.02.22 |