안녕하세요! 전국의 카페 정보(카페 이미지, 카페 이름, 카페 주소, 카페 메뉴 등)를 얻기 위해서 크롤링을 하다가 정적 크롤링으로 데이터 수집을 시도했습니다. 데이터를 수집하는데 한계를 느껴 셀레니움을 통한 동적 크롤링을 사용했습니다. 이번 시간에는 bs4를 이용한 정적 크롤링을 실습해보도록 하겠습니다. 우선 정적 크롤링이 무엇인지 알아야겠죠? 개발 환경 라이브러리를 먼저 설치하겠습니다. pip install bs4 https://jaaamj.tistory.com/101 크롤링 종류(정적 VS 동적) 크롤링이란? 크롤링(crawling) 또는 스크레이핑(scraping) 은 웹 페이지를 가져와서 데이터를 추출해 내는 방법을 말합니다. 이렇게 크롤링하는 소프트웨어를 크롤러(crawler) 라고 합니다. 크롤링 jaaamj.tistory.com jaaamj님 블로그에서 정적, 동적 크롤링을 잘 설명해주셔서 간단하게 알아보겠습니다.
크롤링을 하기 전에 확인해야 할 것(robots.txt)robots.txt robots.txt는 크롤링 봇이 웹 사이트를 탐색할 때 접근 범위를 제한하기 위해 사용됩니다. 정적 크롤링은 내가 찾고자 하는 데이터가 한 화면에 다 표시될 때 사용하면 좋습니다. 한 페이지 안에서 데이터를 가져오기 때문에 속도가 빠르다는 장점이 있습니다. 처음에는 카페 이미지와 카페 이름을 수집하기 위해 bs4를 이용한 정적 크롤링을 이용했지만 요구사항이 바뀌어서 더 많은 정보를 수집하기 위해 셀레니움을 이용하게 되었습니다. 크롤링을 하기 위해 크롤링할 데이터의 태그 및 속성을 확인해야 합니다. 크롬 브라우저에서 ctrl + shift + c 를 누르게 되면 요소를 쉽게 선택할 수 있습니다. 크롬 브라우저가 아니시라면 F12 키를 눌러 개발자 도구를 열어서 요소를 탐색해주시면 됩니다. 크롬 브라우저에서 ctrl + shift + c 를 누르게 되면 개발자 도구에서 element 요소 부분이 선택됨위의 사이트에서 카페 이미지와 카페 이름을 수집하기 위해 코드를 작성합니다.
위 코드를 보시면 url을 설정하여 페이지를 탐색하고 beutifulsoup를 이용해서 특정 요소를 선택해서 데이터를 수집하는 모습입니다. 중간에 수집한 데이터의 공백 문자를 지워주기 위해 strip을 이용하여 공백을 제거해주고 마지막으로 요소의 속성을 받아와서 이미지 주소를 처리해주었습니다. 이렇게 되면 카페 이미지를 저장할 때 이미지의 이름이 카페 이름으로 설정되어 저장되게 됩니다. 크롤링된 이미지가 저장된 것을 확인해볼 수 있습니다. 사실 정적 크롤링을 사용하다 보니 정말 제한적이라는 생각이 들어 동적 크롤링으로 데이터를 수집하는 것을 포스팅하도록 하겠습니다. 이번 시간에는 정적 크롤링에 대해서 실습을 진행했습니다. 고생하셨습니다! 동적 크롤링 https://eveningdev.tistory.com/50 [python] selenium, chromedriver를 이용한 동적 크롤링으로 카페 정보 수집 실습하기 안녕하세요! 이전 포스팅에서 bs4를 이용한 정적 크롤링을 포스팅했습니다. 하지만 데이터 수집을 하면서 느낀 점은 다양한 데이터를 수집하는데 한계가 있고 페이지가 동작하여 동적으로 여러 eveningdev.tistory.com |