• 2017. 12. 8.

    by. 곰돌이푸우~

    안녕하세요 오늘은 데이터를 모을 때 본인에 맞게 필요한 정보를 얻기 위해서는 웹 크롤러로 데이터를 수집해야 합니다.

    정작 본인에 맞는 데이터는 정부에서 제공하는 데이터 보다는 구글에서 많이 있습니다.


    크롤링을 만드는데 왜 파이썬이냐? 우선 빠르게 만들 수 있고 파이썬 문법은 쉽습니다. 그리고 요즘 핫한 머신러닝에 적합한 언어이기도 합니다.(텐서플로우일 경우)


    저는 크롤러를 만들때 어디 모듈을 가져다 사용하는 것보다 구조가 중요하다고 생각합니다. 소규모로 한개의 사이트에 대해서 크롤링을 한다고 하면 당연히, 쉽고 빠르게 Beatifulsoup 모듈을 사용해서 긁어오는 것이 더 알맞다고 볼 수 있습니다.


    하지만 포털에 키워드를 입력한 후에 결과를 긁는다고 한다면 많이 생각을 해봐야할 것 같습니다. 예외 처리로는 페이징을 이동하다보면 포탈 사이트 자체적으로 컴퓨터로 검색을 하는 것인지 하는 체크하는 것도 나옵니다. 


    당연히 쓰레드 작업도 중요하지만 이것을 이야기 하기에는 너무 깊게 들어가기 때문에 나중에 기회가 되면 이야기 하도록 하겠습니다.


    우선 구조도를 생각해봐야 할 것 같습니다.






    우선 키워드로 입력을 하고 해당 포털에서의 url을 쌓고 그 해당 html 다운로드에서 서버에 저장하고, url 또한 서버에 저장합니다.

    html 자체적으로 다운로드를 받는 것은 해당 서버에 트래픽을 많이 주지 않기 위해서 입니다. 그리고 해당 서버에 저장되어 있는 html 문서를 parser 를 해서 이미지나 텍스트, 비디오를 빼오게 합니다.


    이런식으로 크롤링을 하면 쉽게 데이터를 모을 수 있습니다. 다만 Task_queue에서 서로 다른 사이트를 파싱해야 합니다. 이 부분을 어떻게 파싱을 하고 필요한 데이터를 모으는 것이 관건입니다.


    이 부분에 대해서는 저의 경우에는 머신러닝으로 이용해 계속적으로 데이터의 텍스트를 잘 빼오고 있습니다. 이 기술에 대해서는 나중에 설명드리도록 하겠습니다.


    오늘은 이것으로 크롤러 구조를 잡는 방법에 대해서 마치겠습니다.