Python 기초(5): Pypi의 Requests로 url formatting하기

Sophie·2024년 1월 8일
0

Python 기초

목록 보기
5/6

1. Pypi의 Requests 모듈 사용해보기

The Python Standard Library에는 파이썬에서 기본적으로 제공하는 모듈들이 있다.

하지만 이 모듈 이외에 다른 사람이 만들어 놓은 모듈을 사용하고 싶을 때는 Pypi를 활용할 수 있다.

Pypi는 다른 사람이 만든 프로젝트나 모듈을 모아둔 곳이다.

(강의는 replit을 사용해서 코드를 실행하고 있으며, replit에서는 별다른 코드없이 package에서 requests를 바로 설치한 후 import 해주면 끝이다.)

우리가 사용할 requests 모듈은 get이라는 function을 갖고 있는데, 이 get은 하나의 url을 받고 우리가 웹사이트를 가져올 수 있게 해준다.

get 함수를 사용해서 website 변수에 들어있는 주소를 요청하면, 웹사이트에서는 <response[200]>,<response[400]> 등으로 응답한다.

여기서 http 상태 코드에 대해 잠시 설명하면, 인터넷은 Http 프로토콜을 기반으로 하며, 컴퓨터들은 http request로 서로 소통한다. 그래서 http 상태 코드를 활용해 request의 결과를 확인할 수 있다.(출처:일상기록 블로그)

다시 돌아와서, print(response)를 실행했을 때 콘솔창에 <Response [200]>이라고 뜨면 웹사이트가 성공적으로 응답했다는 뜻이다. 그런 다음 get함수로 가져온 <response[200]>,<response[400]> 등의 리턴값을 이를 response라는 임의의 변수에 저장해준다.
(내 경우에는 twitter.com를 호출했을 때 400에러가 뜬다. 다른 웹사이트 주소와 달리 트위터만 www가 없어서 그게 문제인가 싶어 www가 안붙는 임의의 티스토리 블로그 주소도 넣어보고, 인터넷 방문 기록도 지워봤는데 소용이 없었다.)

여기서 우리는 String으로 된 <Response[200]>이 아닌 상태 코드(200,400..)로도 바꿀 수 있는데, print(response.status_code)를 사용해주면 손쉽게 상태코드 형태로 콘솔창에 나타낼 수 있다.

여기서 얻은 상태코드를 활용해서 딕셔너리 형태(https://google.com:ok)로도 만들 수 있는데, 그러기 위해서는 먼저 results라는 변수명을 가진 빈 딕셔너리를 하나 만들어 준다.

result = {}

그 다음에 아까 만들어 둔 if문으로 돌아가서 만약 상태코드가 200일 경우, result의 key(여기서는 순서대로 website 튜플 안의 각각의 주소들이 된다.)의 값이 OK로 표시되도록 한다.
([website] 안의 website가 for문으로 인해 순서대로 돌아가면서 google, airbnb, twitter,facebook,tiktok이 되는 것이다.)

if response.status_code == 200:
	results[website] = "ok"

else에 해당하는 코드도 동일하게 작성해주면 아래와 같은 코드가 완성된다.

0개의 댓글