일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SAA
- SSA
- pandas
- react
- Props
- NeXT
- async
- flask
- Class
- 채팅
- dict
- merge
- 중급파이썬
- 튜플
- lambda
- docker
- 파이썬
- MongoDB
- Vue
- git
- RDS
- TypeScript
- wetube
- S3
- 카톡
- crud
- socket io
- AWS
- node
- EC2
- Today
- Total
초보 개발자
타임어택 구현 4 본문
여기까지 잘 넘어왔으니 정보 버튼을 눌러보자 !
버튼을 누르면 alert창으로 주가정보, 시가총액정보, PER정보를 나타낸다.
우리의 mongodb에는 이런 데이터가 없었다. 그리고 db에 저장을 해놓으면 실시간으로 바뀌는 정보를 가져올 수도 없다.
따라서 우리는 이러한 정보를 크롤링을해서 naver에서 가져올 것이다.
이를 위해서는 requests, bs4 모듈이 필요하다. 먼저 js에 가서 정보버튼을 누르면 어떤 함수가 호출이 되는지부터 살펴보자.
getStockInfo에 현대차의 코드 번호가 들어가 있을 것이다. 코드번호는 아래와 같다.
그 코드번호를 받아서 url /stock?code="005380"로 get요청을 보낸다.
먼저 우리가 params에 'code'라는 이름으로 보낸 005380을 code로 받아온다.
그리고 headers를 선언한다.
requests는 Python에서 HTTP 요청을 보내는 모듈이다.
먼저 requests.get을 통해서 어떤 url에 get요청을 보낼 수 있다. 이건 웹브라우져에서 티스토리를 접속한 것과 똑같은 이야기이다. 'www.tistory.com' 이라는 주소로 GET 요청(request)를 보냈고 서버에서는 그 요청을 받아 뭔가를 처리한 후 요청자인 나에게 응답(res)를 줬다. 그리고 응답의 내용(res.text)은 보시다시피 HTML 코드. 이다. 터미널에서는 태그로 보이지만 웹페이지에서는 이 코드를 받아서 이쁜 화면으로 보여주는 것일 뿐 똑같은 내용을 받아온 것이다.
res.status_code # 200
status_code는 잘 전송이 되었는지 확인할 수 있는 코드이다. 200번대는 잘 전송되었다는 코드이다.
prarms라는 옵션을 줄 수 있는데 사용법은 아래에 두고 좀 있다 크롤링할때 한번 사용해보자!
params = {'param1': 'value1', 'param2': 'value'}
res = requests.get(URL, params=params)
requests에서는 text와 content라는 명령어가 존재한다. 이 둘 모두 서버로부터 수신한 내용을 표시하는 코드이다. text는 수신한 byte단위의 데이터를 자동으로 decode 하여 사용자가 보기 좋게 만들어주며, content는 수신한 byte단위의 데이터를 있는 그대로 보여준다.
text는 실제 사용자가 눈으로 보고 판단하기 좋으며, content는 byte단위이기 때문에 프로그램이 처리하기 좋다. 또한 사진이나 파일들을 전송받을 때에는 text로 정보를 읽으면 데이터가 손상될 수 있으므로, byte단위인 content로 읽어야만 한다..
requests를 아래의 사이트를 참고하면 좀더 수월하게 이해할 수 있을 것 같다.!!👍
파이썬 requests 0. 파이썬으로 HTTP 통신하기 (tistory.com)
파이썬 requests 0. 파이썬으로 HTTP 통신하기
이번 시간부터 파이썬으로 HTTP통신을 하게 해주는 requests모듈에 관해 강의해 보려고 합니다. 우선 기본적으로 requests 모듈을 배우시려고 찾아오신 분들이 http 통신을 모르시진 않겠지만, http 통
marisara.tistory.com
파이썬 rquests 3. header와 cookie (tistory.com)
파이썬 rquests 3. header와 cookie
파이썬 requests 3번째 강의는 header와 cookie입니다. 0. 기초 설명 (1) header 예전의 requests의 0번 강의에서 대부분의 웹사이트는 HTTP 통신으로 이루어진다고 말씀드렸습니다. 2020/12/09 - [파이썬/request..
marisara.tistory.com
사이트를 접속할 때, GET 헤더를 서버에 전송하는데 대부분의 브라우저는 헤더를 자동으로 지정해 주지만, 파이썬을 통해 HTTP 통신을 하게 될 경우에는 거의 대부분의 정보를 담지 않는다고 한다.
확연히 차이가 난다. 몇몇 사이트에서는 python-requests라는 Agent를 인식하지 못해서 제대로 된 정보를 보내주지 않는 경우도 있다. 그럴 땐 requests에서 헤더를 직접 지정해 줄 수 있다.
다시 넘어와서
헤더를 지정해주고 가져온 code 받아와서 dict형태로 만들어 준 뒤 prams에 넣어서 request요청을 보내보았다. params에 튜플, 혹은 딕셔너리 형태로 값을 집어 넣으면 url 뒤에 자동으로 ?code=code의 값 을 넣어준다.
받아온 정보를 select를 사용하여 파싱한 뒤 그 정보를 다시 js에 넘겨주는 작업이다.
데이터를 가져오는 방법은 select와 find가 있는데 이 두개의 사용방법가 궁금하면 참고하자.
2021.12.14 - [AI 웹개발 트랙 - 내배캠/1주차] - 1주차 2일차
1주차 2일차
오늘은 Python 크롤링에, jquery로 ajax통신 하는법 대해서 배웠다. 먼저 크롤링을 하기 위해서는 requests와 bs4를 받아와야 한다. request는 http상에서 data와 같은 정보를 받아 와주는 역할을 쉽게 해준다
taehyeki.tistory.com
js는 이 데이터를 받아 alert에 넣어 우리에게 아래와 같은 화면을 보여준 것이다.
이로써 보너스 문제를 제외한 기본 기능까지의 코드를 뜯어보았다.
쓰다가 점점 귀찮아서 자세히 안 적은 부분도 있지만 조금이나마 참고가 되었으면 좋겠습니다.!!!
'AI 웹개발 트랙 - 내배캠 > 1주차' 카테고리의 다른 글
1주차 최대값,최빈값 (0) | 2021.12.19 |
---|---|
1주차 WIL (0) | 2021.12.19 |
타임어택 구현 3 (0) | 2021.12.17 |
타임어택 구현 2 (0) | 2021.12.17 |
타임어택 구현 1 (0) | 2021.12.17 |