DevSSOM

파이썬 크롤링 - 쿼리 개념 본문

Python/크롤링

파이썬 크롤링 - 쿼리 개념

데브쏨 2021. 6. 26. 17:26
반응형

이 뉴스 웹사이트는 각 페이지의 URL에서 p=(숫자) 부분이 20씩 증가하고 있는 규칙이 있음. 이 사이트에서 여러 페이지를 크롤링하려면 어떻게 해야할까?

 

쉬운 방법으로는, URL을 문자열 연산으로 처리해서 새로운 URL을 얻는 방법이 있어.

for i in range(0, 5):
	url = "http://sports.dong.com/ent?p="+str((i*20_1))
    ...

하지만, URL의 쿼리를 이용한다면 이 작업을 더 효과적으로 할 수 있음.

 

 

쿼리(Query)

: 웹 서버에 GET 요청을 보낼 때, 조건에 맞는 정보를 표현하기 위한 변수.

 

  ex 1) 번호가 1번인 학생을 보여줘 -> '번호'가 쿼리가 됨.

  ex 2) 전체 기사 중 페이지가 21인 기사들을 보여줘 -> '페이지'가 쿼리가 됨.

  ex 3) 구글에 '데브쏨'을 검색하면, q라는 변수에 데브쏨이라는 값이 담겨, 전체 데이터 중에 데브쏨이라는 키워드로 검색한 결과만을 보여줌.

  ex 4) 네이버 영화 서비스에서 특정 영화를 클릭하면, code라는 변수에 영화 코드가 담겨 해당 영화에 대한 정보를 보여줌.

 

이러한 URL의 코드는 requests의 get메소드로 GET요청을 보낼 때, params 매개변수에 딕셔너리를 전달함으로서 쿼리를 지정할 수 있음.

url = "https://www.google.com/search"
result = requests.get(url, params = {'q' : '데브쏨'})

전체 영화 데이터에서 영화 코드에 대한 정보를 찾고, 다시 requests를 이용해서 특정 영화에 대한 정보를 얻는 요청을 할 수 있음. 이런 경우 requests의 get 연산자를 두 번 이용하게 됨.

code = ...   # 영화 코드에 대한 정보를 얻음
result = requests.get(url, params = {'movie' : code})

 

 

728x90
반응형
댓글