[Request]
클라이언트는 브라우저(b)라는 프로그램이 URL을 통해 서버에 데이터를 요청
[Response]
서버는 웹 어플리케이션 서버 프로그램(was)을 통해 데이터로 응답
여기서 데이터는 HTML, JSON 등이 있음
클라이언트와 서버사이의 데이터를 주고 받는 규칙
Domain -> 내가 원하는 서버로 데이터를 요청할 때 사용
ip 주소를 가져올수 있음
ex) naver.com
Port -> ip가 특정 서비스나 프로세스를 식별 (어떤 어플리케이션으로 접속할까?)
/main/ - path 경로
read.nhn - Page 파일이름
예시 링크
https://velog.io/write?id=98c3bfe4-15d9-4976-a6af-90ee0f653086
? 전까지가 파일로의 접근을 설명
? 뒷줄은 Query
mode = LSD - Query - url에 원하는 데이터를 요청할때 사용
클라이언트가 서버에 데이터를 요청하면 서버가 was에 입력
was는 dbs와 연결이 되어있으므로 dbs에 데이터를 가저오라고 명령
#뒤에는 어떤 위치에 어느 화면을 보여줄지 결정
get 방식 (간단)
url에 query 포함
query 노출, 전송 가능 데이터 작음
post 방식 (번거로움)
body(url이 아닌 다른 저장 공간)에 query 포함
query 비노출, 전송 가능 데이터 많음
client와 sever가 데이터를 주고 받는 결과 정보
2xx - sucess (성공)
3xx - redirect
4xx - request error ( 페이지 없음 )
5xx - sever error
+internet
컴퓨터로 연결하여 tcp/ip 프로토콜을 이용해 정보를 주고 받는 컴퓨터 네트워크
해저케이블을 사용해 전세계 컴퓨터에 접속
무선인터넷은 매체를 주파수 사용
client의 browser에 저장하는 문자열 데이터
client의 browser와 sever의 연결정보
사용예시 : 자동로그인
cache
client,sever의 RAM에 저장하는 데이터
RAM에 데이터를 저장하면 데이터 입출력이 빠름
객체의 모음으로 조직화하는 프로그래밍 기법
객체를 구체화하는 형태의 프로그래밍으로 객체지향적임
사용법은?
: 클래스 선언(코드작성) -> 객체 생성(메모리사용) -> 메서드호출(코드실행)
: 클래스 선언(설계도작성) -> 객체 생성(제품생산) -> 메서드호출(코드실행)
클래스는 객체를 만들기 위한 설계도, 객체는 설계도로부터 만들어낸 제품으로 이해할 수 있음.
*클래스 내부에 정의된 함수인 메소드의 첫 번째 인자는 반드시 self여야 함
클래스 선언(코드작성)
class Account: balance = 0 def deposit(self, amount): self.balance += amount def withdraw(self, amount): self.balance -= amount
special methods: 특별한 기능을 하는 메서드
- 생성자 메서드 : __ init __
스페셜메서드 중 하나로 객체를 생성할때 사용되는 메서드
메서드에서 사용되는 변수의 초기값을 검사하고 설정하는 용도로 사용
웹크롤링 방법
웹크롤링이란?
-웹상의 정보를 탐색 및 수집하는 과정
웹페이지의 종류
= 가져오는 데이터 프레임이 다른 점이 가장 큰 차이!!
[데이터 수집(크롤링)의 과정]
1. URL -> 개발자도구를 사용해 찾아냄
2. request -> response(json,html)
3. json,html포맷의 데이터 -> dataframe으로 변경
import requests
import pandas as pd
(1) 웹 서비스 분석을 위해 url 수집!
url = 'https://m.stock.naver.com/api/index/KOSPI/price?pageSize=10&page=2'
(2) 서버에 데이터를 요청! (requests)
response = requests.get(url) response
response(응답)으로 200이 나와야 하며 400 혹은 500번이 나오면 안돼!
- 200이 나와도 방심하지 말고 response.text를 사용해
내용 확인을 꼭 해볼 것 !
(3) 내용 확인
response.text[:500]
(4) 서버에서 데이터를 받았다면 데이터를 파싱(형태 변경)
- response.json()의 결과가 어떤 데이터 타입인지 확인
type(response.json())list #결과는 list
=> json의 데이터는 리스트 형태.
(5) 함수만들기
- 리스트형식의 데이터를 pandas의 DF형태로 변경
- DF에서 거래시작과 종가를 남기고 나머지 제거
data = response.json() df = pd.DataFrame(data)[['localTradedAt','closePrice']] df.tail(2)
정리 너무 잘하셨네요 최고!!