4.7 Requests
Python Standard Library 사용해본다.
Pyhon Standard Library 에 없는 것은 pypi 에서 찾을 수 있다.
pypi - 다른 사람이 만든 project 나 module 을 모아둔 곳.
requests 를 검색해서 사용할 예정이다.
reqeusts는 user의 python 코드에서 웹사이트로 request 보내는걸 할수 있게 해준다.
request 란 무엇인가?
예를 들어 내가 구글로 이동하는게 request 이다.
내 브라우저는 구글 서버에 reqeust 를 보내고 구글 서버는 나한테 웹사이트를 보내준다.
requests 는 이걸 가능하게 해준다.
cmd 창을 열고 python -m pip install requests 를 입력하여 requests 설치
from requests import get
requests 에서 get 을 가져온다
get 은 이동한 다음에 website 를 가져오는 function 이다.
4.8 status code
get function을 사용하여 URL을 가져와본다.
get function은 response 를 return 해준다.
response 는 웹사이트의 응답이다.
function 이 무언가를 return 해주기 때문에 user 는 그 값을 가져온다.
user 는 그걸 변수(variable)로 받아야 한다.
그러므로 response 라는 변수를 만들어서 받는다.
response 는 그저 변수일뿐 다른이름으로 만들어도 된다.
from requests import get
websites = (
'google.com',
'https://airbnb.com',
'facebook.com',
'https://naver.com'
)
for website in websites:
if not website.startswith('https://'):
website = f"https://{website}"
response = get(website)
print(response)
출력값:
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
200 은 웹사이트가 성공적으로 응답했다는 뜻이다.
- 1xx(정보) : 요청을 받았으며 프로세스를 계속 진행합니다.
- 2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.
- 3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요합니다.
- 4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
- 5xx(서버 오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.
인터넷은 HTTP protocol 에 기반하고 있다.
컴퓨터들이 서로 소통하는 방식은 HTTP request 이다.
그래서 request가 정상인지 아닌지 판별해야하는데
그때 사용하는게 HTTP 상태코드 이다.
메서드중 status_code(상태코드) 를 출력해주는 메서드를 사용한다.
from requests import get
websites = (
'google.com',
'https://airbnb.com',
'facebook.com',
'https://naver.com'
)
for website in websites:
if not website.startswith('https://'):
website = f"https://{website}"
response = get(website)
print(response.status_code)
출력값:
200
200
200
200
이번에는 상태코드(status_code) 가 정상이면 ok 아니면 not ok 라는 구문을 출력해본다.
from requests import get
websites = (
'google.com',
'https://airbnb.com',
'facebook.com',
'https://naver.com'
)
for website in websites:
if not website.startswith('https://'):
website = f"https://{website}"
response = get(website)
if response.status_code == 200:
print(f"{website} is OK")
else:
print(f"{website} not OK")
출력값:
OK 또는 Fail 같은 응답을 하는 dictionary를 만들어본다.
results 라는 dictionary를 만든다.
get(website)를 통해서 response 를 받게되면
results dictionary 안에 새로운 entry를 추가한다.
results dictionary에 상태코드가 정상인( 응답이 잘 되는 웹사이트 ) 를 추가한다.
result[website]를 사용해서.
from requests import get
websites = (
'google.com',
'https://airbnb.com',
'facebook.com',
'https://naver.com'
)
results ={}
for website in websites:
if not website.startswith('https://'):
website = f"https://{website}"
response = get(website)
if response.status_code == 200:
results[website] = "OK"
else:
results[website] = "FAILED"
print(results)
HTTP 상태 코드 정리 출처
'Programming > Python 웹 스크래퍼 만들기' 카테고리의 다른 글
Python WebScrapper Introduction (0) | 2022.11.16 |
---|---|
Python Requests, Get 복습 (1) | 2022.11.15 |
Python For Loops (0) | 2022.11.11 |
Python List, Tuple, Dict 복습 (0) | 2022.11.10 |
Python Tuple, Dictionary (0) | 2022.11.09 |