목 차 |
1. 사전지식 2. 웹 크롤링 실습 |
[1. 사전지식]
1. Server / Client
- Server: 제공자
- Client: 요청자
2. URL(Uniform Resource Locator)
- 왜 URL 사용할까? -> IP 주소 외우기 어려워서
- 구조 1
- 구조2
https:// | Protocol |
news | Sub Domain |
naver.com | Root Domain(Domain) |
80 | port |
/main/ | path |
read.nhn | page |
?mode=LSD ~~~ 0009847211 | query |
#da_727145 | fragment |
- URL은 도메인을 포함한 경로이다.
- 이전글 DNS 정리 자료를 참고해보면 재밌다.
DNS개념과 DNS 쿼리 과정 예시 (전달자, 조건부 전달자) 끝판왕
DNS(Domain Name System) 컴퓨터의 경우 사용하는 운영체제도 서로 다르고, 프로그램의 경우 아예 구현된 언어가 다르기 위해 네트워크에서 이들이 통신할 수 있도록 하려면 공통된 통신 규약, 즉 프로
sooonzero.tistory.com
3. GET / POST
- GET과 POST는 HTTP 메서드로 클라이언트에서 서버로 무언가를 요청할 때 사용한다.
- GET: URL에 데이터가 포함(데이터 노출)된다. 길이 제한 있다.
- POST: BODY에 데이터가 포함(데이터 숨겨짐)된다.
4. 인터넷
- TCP/IP 통신 프로토콜을 이용해 정보를 주고받는 컴퓨터 네트워크
- 이전글 참고
IP, SUBNET, GATEWAY 의 개념 끝판왕
IP (Internet protocol) 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약 IP 주소(IP Address) 인터넷에 연결되어 있는 각 컴퓨터들이 갖고 있는 숫자로 이루어진 고유 주소 네트워크 주소
sooonzero.tistory.com
5. OSI 7 LAYER
- 1.physical - 2.data link - 3.network - 4.transport - 5.session - 6.presentation - 7.appication
- 이전글 참고
OSI 7 Layer 정리 끝판왕
OSI 7 계층이란? - ISO(국제표준화기구)에서 개발한 모델 - 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것 다른 제조업자의 시스템이라도 네트워크 유형에 관계없이 상호통신이 가능한 지
sooonzero.tistory.com
6. Cookie / Session / Cache
- Cookie: Client에 저장하는 문자열 데이터로 도메인 별로 따로 저장
- Session: Server에 저장하는 객체 데이터, 브라우저와 연결시 Session ID 생성
- Cache: Client나 Server의 메모리에 저장하여 빠르게 데이터 가져오는 목적의 저장소
7. HTTP Status Code
- 서버와 클라이언트가 데이터를 주고 받으면 주고 받은 결과로 상태 코드를 확인할 수 있다.
2xx | success |
3xx | redirection (browser cache) |
4xx | request error |
5xx | server error |
8. Web Language / Framework
Client: HTML, CSS(less sass), Javascript(vue.js, react.js, angelar.js, backborn.js)
Server: Python(Django, Flask), Java(Spring), Ruby(Rails), Javascript(Nodejs), Scala(Play)
9. Scraping / Crawling / Spider / Bot
- Scraping: 데이터를 수집하는 작업
- Crawling: 여러 페이지의 특정 데이터들을 수집하고 분류하는 작업
- Spider or Web crawler: 웹 데이터를 수집하는 소프트웨어
- Bot: 인터넷 상에서 자동화된 작업을 실행하는 소프트웨어
10. 동적 페이지와 정적 페이지
정적 페이지: 웹 브라우저에 화면이 한번 뜨면 이벤트에 의한 화면의 변경이 없는 페이지, 새로고침, URL 변경
동적 페이지: 웹 브라우져에 화면이 뜨고 이벤트가 발생하면 서버에서 데이터를 가져와 화면을 변경하는 페이지, 더보기, URL 변경 X
11. 웹 크롤링 방법
1. requests 이용: 서버에서 바로 데이터 받아옴
- json 문자열로 받아서 파싱: 주로 동적 페이지 크롤링에 사용
- html 문자열로 받아서 파싱: 주로 정적 페이지 크롤링에 사용
2. selenium 이용: 브라우저를 직접 열어서 데이터를 받아옴
3. 속도 비교
- requests json > requests html > selenium
12. 웹 크롤링 절차
1. 웹서비스분석(개발자도구): URL
2. request(URL) > response(data): data(json(str),html(str))
3. data(json(str), html(str)) > 파씽: response.json(), BeautifulSoup(css-selector) > DataFrame
[2. 웹 크롤링 실습]