#4.8 Status Codes
전시간에 배운 내용 : URL을 수정하고 사용할 준비를 했다.
from requests import get
websites = (
"google.com",
"airbnb.com",
"facebook.com",
)
for website in websites:
if not website.startswith("https://"):
website = f"https://{website}"
print(website)
---------------------------------------------------------
이번시간에는 website를 출력하는 것 대신에 get(website)를 해볼 예정이다.
* get function은 response를 return 해준다.
response는 웹사이트의 응답이다.
이 function이 무언가를 return 해주기에 그 값을 가져온다.
ex) return value는 function이 어떤 작업을 수행하고 어떤 값을 돌려주는 역할이다. 우리는 value 값을 변수로 받아야 한다.
response = get(website)
print (response)
========================================
from requests import get
websites = (
"google.com",
"airbnb.com",
"facebook.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]>
<Response [200]>
>> 웹사이트가 성공적으로 응답했다.
- 인터넷은 HTTP protocol에 기반한다.
그래서 컴퓨터들은 서로 HTTP request로 소통한다.
따라서 request가 정상인지 아닌지 판단하기 위해서
* request의 결과를 확인하는 방법으로 HTTP 코드를 사용한다.
100번대:
100 : continue를 의미
프로토콜을 업데이트 하는 걸 의미한다. switching protocol
200번대: OK 요청이 성공적으로 된 것을 의미한다.
300번대: redirection, cash를 위한 것이다.
400번대: 문제가 있을 때 보이는 것이다.
404 Not Found -> 서버가 뭔가를 찾을 수 없는 경우를 보여준다.
500번대:
* get function이 request한 response는 다른 것도 가지고 있다.
'상태코드'가 그 예다.
print(response.status_code)
> 200
200
200
200
200
위의 결과의 응답속도는 다 달랐다. 그 중 구글이 가장 빠른 속도로 응답했다.
if response.status_code == 200:
print (f"{website} is OK")
else :
print(f"{website} not OK")
=================================================================
from requests import get
websites = (
"google.com",
"airbnb.com",
"facebook.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 = {}
reponse를 받게 되면 여기서는 results dictionary 안에 새로운 entru를 추가할거다.
response[website] 를 넣을 예정이다.
위에 results[website]는 website가 https://google.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)
>{'https://google.com': 'OK', 'https://airbnb.com': 'OK', 'https://twitter.com': 'OK', 'https://facebook.com': 'OK', 'https://tiktok.com': 'OK'}
>>> list(또는 tuple)사용, for 반복문 사용, if else사용
잘한 점: 모르는 걸 반복해서 들었다. 잘 모르던 지식을 촘촘하게 쌓아가고 있다.
아쉬운 점: 지난시간부터 tiktok이 오타난 줄 도 모르고 tittok으로 써서 서버응답이 200이 뜨지 않았었다. 에러가 떠도 찾기가 쉽지 않았다. 앞으로 좀 더 꼼꼼하게 써야겠다.
'개발 > python' 카테고리의 다른 글
#4.7 Requests (0) | 2022.09.21 |
---|---|
#4.6 URL Formmatting (0) | 2022.09.20 |
#4.5 For Loops (2) | 2022.09.19 |
#4.4 recap (0) | 2022.09.18 |
#4.3 Dics (0) | 2022.09.17 |