크롤링 하는 회사들어갔는데요
본문
요즘은 크롤링 어떻게 하나요
책 같은봐도 도움될까요
해보신분들은 간단한 예제 소스 부탁드립니다
답변 3
안녕하세요? ^^
연휴 잘 보내고 계시는가요?
도움이 되실지 모르겠지만 제 개인적인 생각을 간략히 적어보겠습니다~
업체마다 상이한 점이 있겠지만 크롤링 회사에서 하는 크롤링은
거의 Python으로 이루어진다고 보시면 됩니다.
Python이 웹크롤링과 데이터 사이언스에 특화되어 있고,
Flask나 Django로 바로 퍼블리싱할 수도 있기 때문입니다.
사용되는 Python 모듈로는 Requests와 BeautifulSoup이 주를 이룹니다.
(개인적인 취향에 따라서 Scrapy를 주로 사용하는 사람도 있습니다.)
크롤링 업체가 아닌 일반적인 경우에는 정적 웹페이지에는 Requests를 사용하고
동적 웹페이지에는 Selenium을 사용하는 경우가 많지만,
크롤링 업체에서는 크롤링의 안정성, 속도 등 측면에서
95% 이상 Requests로 해결하셔야 될 것입니다.
Requests로 최대한 브라우저의 GET, POST 전송을 모방하여
로그인, 캡차 풀기, 클라우드 플레어 우회하기 등을 하셔야 됩니다.
저도 과거에는 크롤링 연습을 위하여 15분 이내에
특정 웹사이트의 모든 데이터를 Requests로 긁어오는 스크립트를 작성하는 연습을 했습니다.
'동빈나'의 유튜브 영상을 참고하시면 Python 웹크롤링에 관한
기본적인 감을 잡으실 수 있을 것 같네요 ^^
https://www.youtube.com/playlist?list=PLRx0vPvlEmdCZ_5prmWXfuMf0lM43BrQU
Requests 크롤링 연습에 관하여는 아래 웹페이지를 참고하세요~
참고하실만한 좋은 예제가 많습니다.
https://humit.tistory.com/pages/project
그리고 클라이언트가 웹크롤링한 데이터를 DB나 엑셀 파일로
저장해달라고 요청하는 경우가 많습니다.
Pymysql, Openpyxl 등 관련 모듈의 기본적인 사용법도 익히셔야 할 것 같습니다.
궁금하신 점이 있으면 댓글 주시구요 ^^
새 회사에서 즐겁고 뜻깊은 생활 하시기를 기원합니다~!
보통 소스페이지가 보인다면 정규식이나 explode,str_replace 등의 노가다로 뽑힙니다.
대부분 curl 을 통해 긁겠구요.
하지만 node.js 나 소켓을 통한 페이지를 업데이트 하는 경우는 소스보기로 볼수없으니
파이선의 selenium 을 통한 chrome driver 를 통하여 가상브라우저를 통해 소스를 가져오죠.
파이선이 불편하시다거나 낯설어서 걱정되신다면
php 로도 크롬드라이버에 접근하여 동일한 결과를 얻을 수 있는 오픈소스가 있으니 참조해보셔도 좋을것같아요.
제 경우는 셀레니움만 아니라면 컬로 긁어서 그 이후로부터는 자바스크립트로 문자열의 패턴을 추출합니다.
컬로 긁은 소스 전쳬는 textarea 에 담아서 보면 추려낼 패턴이 쉽게 보입니다.
대부분 클래스명으로 split 하는 것이 가장 일반적이구요.