brunch

You can make anything
by writing

C.S.Lewis

by 반병현 Feb 01. 2019

아이돌 사진 수 천장을 한 번에 다운로드해 보자 (2)

Selenium을 이용한 크롤링

  이번 글의 소스코드는 깃허브에서 받으실 수 있습니다. 앞 글들을 참고하셔서 git pull origin master를 재실행주시면 폴더 안에 image_crawler 라는 폴더가 새로 생겨 있을 것입니다.


  앞 글들을 읽고 오지 않으신 분들은 아래 링크에서 바로 다운로드 하시면 됩니다.


  



  이 글은 전편에서 이어지는 글입니다. 사실 전편에서 본격적인 내용은 시작을 안 한 상태라서 여기서부터 읽으셔도 문제 없습니다. 촤하핫.


  


  

구글에 '박효신'을 검색한 결과

  구글 검색창에 키워드를 입력하면 위와 같은 페이지가 펼쳐진다. 구글은 수 많은 사이트에서 키워드와 관련된 정보를 불러와 사용자에게 제공한다. 위 페이지에서 박효신의 사진이 차지하는 면적은 그렇게 넓지 않다. 이미지만 보기 위해서 이미지 탭으로 넘어가 보자. 검색창 바로 밑의 '이미지'를 클릭하면 된다.


  

박효신 이미지 검색 결과

  구글에 박효신을 검색한 상태로 이미지 탭을 누르면 박효신과 관련된 이미지가 좌라락 정돈되어 나온다. 하. 정말 잘생겼다. 대장나무 박효신, 얼른 8집 내 주세요!


  여기서 어떻게 하면 이 사진들을 주르륵 긁어와 다운로드할 수 있을까? 구글 홈페이지에 일일이 접속해서 키워드를 입력하고, 이미지 탭을 클릭하도록 코드를 짜면 쉬울 것 같기는 하다. 그런데, 그건 너무 비효율적인 방법이 아닐까?


  물론 필자가 아주 급한 상황이고, 프로그램 설계나 검색에 시간을 투자할 여력이 부족했다면 그렇게 구현 했을 것 같다. 프로그래머는 한 시간 걸릴 일을 10시간 걸려서 자동화 해 놓고 뿌듯함을 느끼는 종족이기 때문이다. 하지만 지난번 우편등기 정리사건때 느낀 것인데 가능한한 줄일 수 있는 작업은 줄여 놓고 시작하는 것이 성능 면에서나 정신건강 면에서나 좋다.

  

잘생긴 그의 얼굴에 시선이 빼앗겨 한동안 멈춰있었다

  자, 주소창을 한번 클릭해 보자. 복잡한 문자열 사이에 '박효신'이라는 글자가 눈에 들어온다. 검색창에 '박효신'이라고 검색한 것과 주소창의 '박효신'이라는 글자는 서로 깊은 연관이 있을 것 같다. 주소창에 적혀 있는 복잡한 글자들을 한번 분석해 보고 싶었다. 필자가 웹에 대한 지식은 없지만, 적어도 컴퓨터가 아주 논리적인 방식으로 작동한다는 것은 알고 있다. 분명히 관계가 있을 것이다.


  우선 주소창에서 가장 눈에 띄는 것은 google.co.kr이라는 문자였다. 지금 필자가 보고 있는 화면은 구글의 한국 서버에서 보내 주고 있는 검색 결과물인 것 같다. ".co.kr"은 각각 company와 Korea의 줄임말이다. 그러면 한번 .co.kr을 .com으로 바꾸어 보도록 할까?


.co.kr 을 .com으로 변경해 보았다

  놀랍게도 정상적으로 작동했다. 주소창에서 co.kr을 com으로 변경해도 정상적으로 박효신의 존엄하신 용안을 알현할 수 있다. 저 긴 주소 중에서 핵심적인 기능을 하는 녀석은 지우거나 변경하면 작동하지 않을 것이다. 핵심적인 역할을 수행하지 못하는 부분은 삭제해도 정상적으로 작동할 것 같다. 자, 이 가설을 토대로 한번 주소를 면밀하게 뜯어보도록 하자.


  

구글 이미지에 '박효신'을 검색한 주소

  물음표와 앤드(&)표시마다 엔터키를 쳐서 구분해 보기 좋게 정리해 봤다. 맨 앞의 "https://www.google.com"은 구글의 홈페이지 주소라는 뜻일 것이다. 슬래시(/)는 하위에 있다는 뜻으로 생각하면 될 것 같다. A라는 폴더 내의 B라는 파일은 A/B라고 표현할 수 있지 않은가? 아마 인터넷 주소도 비슷한 원리로 작동할 것이다.


  녹색으로 표시된 search는 검색 기능을 의미하는 것 같다. 눈치껏 때려맞추어 보자면, (구글주소)/(search) 라는 구조니까 아마 "https://www.google.com/search"는 구글 서버에 접속해서, 검색 기능을 불러오라는 뜻이 아닐까? search 바로 뒤의 빨간 물음표는 "무엇을 검색할 건데?" 라는 뜻으로 대충 받아들이기로 했다.


  그러니 위 주소는 큰 틀에서 보면 "구글 서버에 접속해서/검색 기능을 활성화해/근데 뭘 검색할거냐면~~" 이라는 구조인 것 같다.


  q, hl, source, tbm 등 등호의 왼쪽에 있는 문자들은 함수의 파라미터와 역할이 같을 것이다. 함수가 무엇이고 파라미터가 무엇인지 여러분들은 이미 예전 글을 통하여 배웠을 것이다. 박효신 이라는 한글이 q에 대응하고 있으므로 q의 정체를 가장 쉽게 유추할 수 있을 것 같다. q는 검색어라는 뜻일 것이다. 아마 query의 줄임말이 아닐까?


  나머지는 무슨 의미인지 전혀 모르겠다. 그러니 일단 하나씩 지워보자.


이어지는 내용은 아래 링크에서 감상하실 수 있습니다









매거진의 이전글 아이돌 사진 수 천장을 한 번에 다운로드해 보자 (1)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari