
2023 - 02 - 02
이번 강의 부터는 구직사이트의 html코드를 받아와서 원하는 키워드에 해당하는 구직 요건들을 받아오는 프로젝트를 배웠다.
기초적인 구성을 위해 사이트에서 requests를 받아오는 코드를 만들었다.
먼저 get이라는 function을 사용하기 위해, requests라는 모듈을 import하고, 대상이 될 사이트들을 tuple에 넣었다.
get은 url을 받고 웹사이트를 가져올 수 있게 해준다.
from requests import get #get은 웹사이트를 가져온다.
websites = ("google.com", "airbnb.com", "https://twitter.com", "facebook.com",
"https://naver.com")
그 다음 for - in 문을 이용해 https://가 없는 사이트는 추가 해주었다.
get(website)는 헤당 사이트의 http코드를 표현해준다. get을 print하면
<Response [200]>이라고 출력된다.
우리는 여기서 200이라는 숫자만을 가져오기 위해 method를 이용할 건데,
.status_code를 이용하면된다.
그렇게 코드를 돌리면 https://까지 포함된 tuple을 다시 results라는 빈 dictionary에 넣어준다.
from requests import get #get은 웹사이트를 가져온다.
websites = ("google.com", "airbnb.com", "https://twitter.com", "facebook.com",
"https://naver.com")
results = {} #내용을 추가하기 위한 빈 dictionary
for website in websites:
if not website.startswith("https://"):
website = f"https://{website}" #tuple string에 추가하는 방법.
response = get(website) #get은 response를 return 해준다
if response.status_code == 200:
results[website] = "OK" #results에 새로운 entry추가
else:
results[website] = "ERROR"
print(results)
결과를 출력하면 다음과 같다.
{'https://google.com': 'OK', 'https://airbnb.com: 'OK',
'https://twitter.com: 'OK', 'https://facebook.com: 'OK',
'https://naver.com: 'OK'}
인터넷은 http 프로토콜에 기반을 한다. 컴퓨터들끼리의 소통도 http request에 의해 이루어진다. 제대로 작동하는지를 알려면 http코드를 알아야 하는데 그것은 숫자로 표현이 된다.
100번대부터 500번대 까지 정의되어 있는데, 필수적인 몇가지를 정리해보자.
100계속하다
101스위칭 프로토콜
102처리
200좋아요
202수락됨
203신뢰할 수 없는 정보
204콘텐츠 없음
205콘텐츠 재설정
206부분 콘텐츠
207다중 상태
208이미 보고됨
304수정되지 않음
305프록시 사용
306프록시 전환
307임시 리디렉션
308영구 리디렉션
400잘못된 요청
401무단
402지불 필요
403금지
404찾을 수 없음
405비 허가 된 방식
406받아 드릴 수없는
407프록시 인증 필요
408요청 시간 초과
413엔터티가 너무 큼 요청
414요청 URI가 너무 깁니다.
415지원되지 않는 미디어 유형
429너무 많은 요청
451법적인 이유로 사용할 수 없음
500인터넷 서버 오류
501구현되지 않음
502잘못된 게이트웨이
503서비스 불가
504게이트웨이 시간 초과
505지원되지 않는 HTTP 버전
507불충분한 저장 공간
511네트워크 인증 필요
561승인되지 않음(AWS Elastic Load Balancer)(비표준 상태 코드)
자세한 내용은 https://httpstat.us/ 에서 찾아볼 수 있다.