목 차 |
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 정리 자료를 참고해보면 재밌다.
3. GET / POST
- GET과 POST는 HTTP 메서드로 클라이언트에서 서버로 무언가를 요청할 때 사용한다.
- GET: URL에 데이터가 포함(데이터 노출)된다. 길이 제한 있다.
- POST: BODY에 데이터가 포함(데이터 숨겨짐)된다.
4. 인터넷
- TCP/IP 통신 프로토콜을 이용해 정보를 주고받는 컴퓨터 네트워크
- 이전글 참고
5. OSI 7 LAYER
- 1.physical - 2.data link - 3.network - 4.transport - 5.session - 6.presentation - 7.appication
- 이전글 참고
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. 웹 크롤링 실습]