728x90
728x170

웹크롤링을 위한 선택의 기로: requests vs selenium에 대한 글을 쓰겠습니다. requests는 가볍고 빠르기 때문에 간단한 정보를 크롤링할 때 매우 효과적입니다. 반면에 selenium은 브라우저를 자동으로 제어할 수 있기 때문에 동적인 웹페이지 크롤링에 적합합니다. 또한, 자바스크립트 처리가 필요한 경우에도 selenium이 더 효과적입니다. 선택은 크롤링하려는 페이지의 특징과 목적에 따라 달라질 수 있으니 잘 선택해야 합니다.




웹크롤링-선택-requests vs selenium



requests와 selenium은 둘 다 웹 크롤링과 자동화 도구로서 매우 유용하게 사용되는 도구이지만, 그들의 주요한 차이점은 행동 방식에 있습니다.


requests는 Python 패키지로 HTTP 요청을 보내고 받아올 수 있는 기능적인 도구입니다.
이 도구를 사용하면 웹사이트의 HTML 코드를 쉽게 가져올 수 있어, 이를 다양한 데이터 수집에 이용할 수 있습니다.
또한 요청이 성공적으로 되면 해당 데이터를 자동으로 파싱하여 반환하기 때문에 사용자가 이 데이터를 쉽고 빠르게 사용할 수 있습니다.
반면, selenium은 웹 권장 인터페이스, 즉 웹 브라우저를 제어하는데 사용되는 도구입니다.
이를 이용해 코드를 실행시키면, 세션이 시작되어 웹 프로그램을 실행시키는 프로세스를 자동화 합니다.
따라서 이를 이용하여 효과적으로 웹사이트를 탐색하고 데이터를 수집하는 작업을 할 수 있습니다.
둘 다 목적은 데이터 수집이지만, requests는 개발자가 직접 HTTP 요청을 작성하여 웹사이트 데이터를 가져올 수 있지만, selenium은 웹사이트를 실제 웹 브라우저처럼 제어하여 가져오는 것이 가능합니다.
requests는 기본적으로 HTML을 파싱할지 유무를 선택할 수 있지만, selenium은 모든 HTML을 가져오며 정확한 구문 분석이 용이합니다.
따라서, requests는 HTTP 요청에 대한 자동화된 응답 처리를 제공하는 반면에 selenium은 웹 브라우저 컨텍스트에서 데이터 수집을 수행하는 자동화 도구입니다.
이에 따라 개발자는 데이터 수집이나 웹 브라우저 상에서의 자동화 도구 사용에 따라 두 도구를 적절하게 선택하여 사용할 필요가 있습니다.

requests 모듈은 파이썬에서 HTTP 요청을 보내는 모듈로 쉽게 크롤링할 수 있는 방법 중 하나입니다.


간단한 예시로는 웹사이트의 HTML 코드를 가져오는 것입니다.
get() 함수를 이용하여 해당 URL의 HTML 코드를 가져올 수 있습니다.
만약 웹페이지가 로그인이 필요하다면, requests 모듈만으로는 로그인을 하거나 세션 유지 등의 작업을 수행할 수 없습니다.
이러한 경우에는 Selenium과 같은 다른 라이브러리를 사용해야 한다.
또한, requests 모듈로 가져올 수 있는 데이터는 HTML 코드와 같은 텍스트 정보에는 한정된다.
만약 동적인 데이터, 즉 Javascript를 통해 생성되는 데이터를 가져와야 한다면 requests 모듈만으로는 제한사항이 따른다.
따라서, 크롤링 시 사용하는 라이브러리나 기술에 대한 이해와 함께 해당 데이터를 어떻게 가져올지에 대한 생각이 필수적입니다.

재미로 시작한 동영상 강의를 보다가, 강사가 전하는 내용인 만큼 내용을 이해하고 이를 기반으로 직접 작성하려 한다.


Selenium은 웹 자동화 도구 중 하나로, Python언어와 함께 사용하여 웹페이지를 제어하고 데이터를 추출할 수 있습니다.
다양한 도메인에서의 크롤링에 적합합니다.
장점으로는 ChromeDriver를 활용하여 손쉽게 브라우저 제어, 다양한 크롤링 수집 가능, JavaScript 코드를 통한 웹 페이지 동작 시험, 테스트 등에 활용할 수 있습니다.
단점으로는 JavaScript 코드의 동작을 제대로 지원하지 않아 동적 웹페이지 제어에 제약이 있을 수 있습니다.
또한, 쉽게 감지될 수 있는 봇 활동으로 인해 웹페이지 접근에 문제가 생길 수 있습니다.
사용법은 먼저, ChromeDriver를 다운로드하여 설치하고, selenium 패키지를 import 한다.
그리고 ChromeDriver를 시작하고, 원하는 웹페이지에 접근하여 DOM을 분석한다.
그리고, 필요한 데이터를 xpath나 css selector를 통해 추출하고, 파일 또는 데이터베이스에 저장하거나 출력한다.
따라서 Selenium은 웹 크롤링에 있어 다양한 기능을 제공하며, 브라우저를 제어하고 동작 시험을 할 수 있다는 데 크롤링 분야에서 매우 강력한 장점을 가지고 있습니다.
그러나 크롤링 방법 중 하나이며, 웹페이지에 접근하는 것만으로도 문제가 발생할 수 있어 적절한 사용법이 필요합니다.

requests와 selenium을 조합하면 더 효과적인 웹크롤링이 가능해진다.


requests는 간편하게 HTTP 요청을 보내는 데 사용되고, selenium은 웹페이지를 자동으로 제어하는 도구로, 동적 웹페이지에서 유용하게 사용된다.
requests로 가져온 데이터를 파싱하기 위해 BeautifulSoup 같은 라이브러리를 이용하는 것처럼, 먼저 selenium으로 동적 웹페이지를 불러온 후, requests로 HTML 데이터를 가져온다.
그 후에는 Beautifulsoup과 같은 라이브러리를 이용해 파싱하면 된다.
이 방법을 이용해, 예를 들어 인스타그램에서 인기 게시물을 가져온다거나, 로그인이 필요한 웹사이트에서 데이터를 가져올 수 있습니다.
requests는 쉽고 편리한 HTTP 요청 도구이기 때문에, selenium과 조합하면서도 코드가 간결하고 적은 데이터를 사용하는 효율적인 크롤링이 가능해진다.

웹크롤링은 인터넷 상의 데이터를 수집하는 기술로, 개인정보보호법을 준수해야 한다.


개인정보라 함은 생존하는 개인에 대한 정보로서 성명, 생년월일, 주소, 전화번호 등 개인 식별이 가능한 정보를 말한다.
따라서 웹크롤링 시 해당 정보가 포함된 사이트를 수집할 때에는 개인정보를 보호할 의무가 있습니다.
또한 수집된 정보의 이용목적과 수집 및 이용기간, 수집하는 정보의 범위 등을 명확히 하여야 하며, 수집된 정보를 적절한 방식으로 저장·관리하여 보호해야 한다.
또한, 수집된 정보를 부적절하게 이용하거나 다른 목적으로 제공하는 것은 법적인 책임을 지게 된다.
따라서, 웹크롤링 시 개인정보보호법과 관련된 법적 이슈를 이해하고 준수하여야 하며, 적절한 보안장치와 절차를 갖추어 정보의 누출 및 오용을 방지해야 한다.
이를 통해 개인정보 보호와 법적 이슈에 대한 고민 없이 안정적으로 웹크롤링을 수행할 수 있습니다.


1 요약: 주제와 범위 파악, 타겟 오디언스 파악, 질문 제시, 예시 및 데이터 제공, 적극적 참여 유도하는 방법을 소개하는 강의 2. 요약: 엑셀 단축키 학습, 마우스 없는 엑셀 작업, MS워드 단축키 활용, 선형회귀식 만들기 등의 내용으로 구성된 강의. 3. 요약: 파워포인트 단축키, 파이썬 기초, 문자열 처리, 데이터 분석 라이브러리 등 다양한 주제를 다루는 강의. 4. 요약: 이메일, 휴대폰 번호, 우편번호 등의 정규표현식 패턴과 웹크롤링의 장단점, 법적 이슈 등을 다루는 강의.

728x90
그리드형

+ Recent posts