Search
Duplicate

본인이 크롤링을 잘하고 싶다, 거수

크롤링이란?
Web 상에 존재하는 Contents를 수집하는 작업, 사람의 손으로 가능하지만 자동화가 편하고 좋으니까!
HTML 페이지를 가져와서 HTML/CSS 등을 파싱한 뒤, 필요한 데이터만 추출하는 기법
OPEN API를 제공하는 서비스를 호출하여 받은 데이터 중 필요한 데이터만 추출하는 기법
Selenium 등 브라우저를 프로그래밍으로 조작해서 필요한 데이터만 추출하는 기법
BeautilfulSoup vs Selenium vs Scrapy
Selenium
자동화된 웹 테스트를 위해 만들어졌지만 JavaScript와의 호환성으로 웹 스크래핑에도 주로 사용
웹 사이트가 점차 발전됨에 따라 JavaScript에 의존하여 실행되는 더 많은 기능들이 라이브러리에 도입
일반적인 웹 스크래핑에서는 사용할 수 없는 bottomless pages, asynchronous loading 등이 있음
마우스 클릭 및 양식 채우기와 같은 스크래핑의 대상이되는 웹 사이트와의 더 잘 상호작용할 수 있는 작업을 수행할 수 있음
단, Headless 브라우저를 제어하므로 많은 리소스가 필요, 즉 효율성을 감소시키고 더 나은 옵션이 필요할 수도 있음
BeautifulSoup
HTML, XML 등의 웹페이지의 많은 데이터 중에서 필요한 데이터를 가져오고 올바른 형식으로 필요한 데이터를 빠르게 추출할 수 있는 라이브러리
가장 큰 장점은 사용 편의성, 몇 줄의 코드로 scraper를 만들 수 있음, 그렇다고 쉽게 이슈가 발생하는 라이브러리도 아님
속도면에서 Scrapy보다 떨어지지만 접근성이 좋고 준수한 속도면에서 널리 사용되는 라이브러리
Scrpay
확장이 용이하도록 만들어졌기 때문에 다양한 확장 옵션을 제공
리소스 자원 사용이 타 라이브러리들에 비해 가벼움
웹 기반 기술에 대한 이해