어두운 proxyscrape 로고

웹 스크래핑: 해야 할 일과 하지 말아야 할 일

스크래핑, Nov-02-20225분 읽기

Web scraping or web data extraction is an automated process of collecting data from a website. Businesses use web scraping to benefit themselves by making smarter decisions from the vast amount of publicly available data. They can extract data in an organized form so that it can be easier to analyze. Web scraping has many

목차

웹 스크래핑 또는 웹 데이터 추출은 웹사이트에서 데이터를 수집하는 자동화된 프로세스입니다. 기업은 웹 스크래핑을 사용하여 공개적으로 사용 가능한 방대한 양의 데이터에서 더 현명한 의사 결정을 내림으로써 이익을 얻습니다. 데이터를 체계적인 형태로 추출하여 분석하기 쉽게 만들 수 있습니다. 웹 스크래핑은 다양한 용도로 활용됩니다. 예를 들어, 이커머스 업계에서 경쟁사 가격 모니터링에 사용할 수 있습니다. 기업은 경쟁사의 제품 및 서비스 가격을 확인하여 가격 전략을 미세 조정함으로써 경쟁에서 앞서 나갈 수 있습니다. 또한, 시장 조사 기관은 피드백과 온라인 제품 리뷰를 추적하여 고객 정서를 측정할 수 있습니다.

일반적으로 웹 스크래핑 프로세스에는 다음 단계가 포함됩니다.

  • 대상 웹사이트 식별 
  • 데이터를 추출할 페이지의 URL 수집하기
  • 페이지 HTML을 가져오기 위해 다음 URL에 요청하기
  • 로케이터를 사용하여 페이지 HTML에서 데이터 수집하기
  • CSV 또는 JSON 파일과 같은 구조화된 형식으로 데이터 저장하기

웹 스크래핑은 어떤 용도로 사용되나요?

다음은 웹 스크래핑의 몇 가지 사용 사례입니다.

시장 조사 - 시장 조사는 필수적이며, 가장 정확한 데이터를 기반으로 해야 합니다. 대량의 고품질의 인사이트가 풍부한 웹 스크랩 데이터를 보유하고 있다면 조직은 적절한 시장 조사를 수행하고 고객 심리를 측정할 수 있습니다. 시장 분석가는 웹 스크래핑을 통해 다음과 같은 작업을 수행할 수 있습니다.

  • 연구 및 개발
  • 경쟁사 모니터링
  • 시장 가격 
  • 시장 동향 분석

부동산 - 부동산 중개인은 웹 스크랩 데이터를 일상적인 비즈니스에 통합하여 시장 내에서 정보에 입각한 의사 결정을 내릴 수 있습니다. 이들은 여러 웹사이트에서 스크랩한 데이터를 사용하여 다음과 같은 작업을 수행합니다.

  • 임대 수익률 추정
  • 시장 방향성 이해
  • 부동산 가치 평가
  • 공실률 모니터링

콘텐츠 및 뉴스 모니터링 - 웹 스크래핑은 기업이 뉴스에 자주 등장하거나 시기적절한 뉴스 분석에 의존하는 경우 업계의 중요한 기사를 모니터링, 집계 및 분석할 수 있는 최고의 솔루션입니다. 조직은 웹 스크래핑을 다음과 같은 용도로 사용할 수 있습니다.

  • 경쟁사 모니터링
  • 대중의 감정 분석
  • 정치 캠페인
  • 투자 의사 결정

최저 광고 가격(MAP) 모니터링 - MAP 모니터링을 통해 브랜드의 온라인 가격이 가격 정책에 부합하는지 확인할 수 있습니다. 판매자와 유통업체가 많기 때문에 가격을 수동으로 모니터링하는 것은 불가능합니다. 따라서 자동화된 웹 스크래핑 프로세스를 사용하여 제품 가격을 주시할 수 있습니다.

웹 스크래핑 방법

데이터를 스크랩할 때 웹 사이트 기능을 손상시킬 수 있으므로 웹에서 데이터를 신중하게 추출해야 합니다. 따라서 웹 스크래핑의 모든 사항을 숙지하고 있어야 합니다.

본인 식별 - 웹에서 데이터를 스크랩할 때 본인 식별을 하는 것이 좋습니다. 식별 규칙을 따르지 않으면 대상 웹사이트에서 웹 크롤러를 차단할 수 있습니다. 크롤러의 헤더에 연락처 정보를 입력해야 합니다. 시스템 관리자나 웹 마스터는 크롤러의 정보에 쉽게 액세스하여 크롤러가 직면한 문제를 알려줄 수 있습니다.

IP 로테이션 - 많은 웹사이트가 악의적인 공격으로부터 웹사이트를 보호하기 위해 스크래핑 방지 메커니즘을 도입하고 있습니다. 웹 스크래핑의 기본 메커니즘을 모르는 경우 웹사이트에 의해 즉시 차단될 수 있습니다. 또한 모든 요청에 동일한 IP를 사용하는 경우 웹사이트가 사용자를 차단할 수 있습니다. 따라서 대상 웹사이트에 여러 요청을 보낼 때는 새로운 IP를 사용해야 합니다. 이를 위해 웹사이트 소유자로부터 사용자의 신원을 숨기고 IP 주소 풀을 할당하는 프록시를 사용할 수 있습니다. 따라서 차단되거나 금지되지 않고 서로 다른 IP 주소를 사용하여 웹사이트에 여러 요청을 보낼 수 있습니다.

robots.txt 검사 - 웹 스크래핑을 하려면 robots.txt 파일을 면밀히 검사해야 합니다. robots.txt는 검색 엔진이 봇을 사용하여 크롤링할 수 있는 파일과 크롤링할 수 없는 파일을 알려주는 파일입니다. 거의 모든 웹사이트에 이 파일이 있으므로 이 파일에서 웹 스크래핑의 규칙을 얻을 수 있습니다. robots.txt 파일에는 초당 전송할 수 있는 요청 수와 방문할 수 있는 페이지와 관련된 중요한 정보가 포함되어 있습니다.

CSS 후크 - CSS 선택기를 사용하여 웹 페이지에서 HTML 요소를 찾고 해당 요소에서 데이터를 수집할 수 있습니다. 요소를 선택하면 웹 스크래퍼가 선택한 요소에 대한 CSS 선택기를 추측합니다. jQuery에서 사용할 수 있는 CSS 선택기와 CSS 버전 1~4(브라우저에서 지원)에서 사용할 수 있는 선택기를 사용할 수 있습니다. 

웹 스크래핑 금지 사항

웹 스크래핑을 하지 말아야 할 사항은 다음과 같습니다.

웹사이트에 부담을 주지 않기 - 데이터를 스크랩하는 웹사이트에 해를 끼쳐서는 안 됩니다. 때때로 요청의 빈도와 양이 웹 서버에 부담을 줄 수 있습니다. 단일 IP를 사용하여 대상 웹사이트의 데이터에 액세스하거나, 여러 페이지에서 데이터에 액세스하려는 경우 다른 IP 주소를 제공할 수 있는 프록시를 사용할 수 있습니다.

일반 데이터 보호 규정을 위반하지 마세요 - GDPR을 위반하여 EU 시민의 데이터를 추출하는 것은 불법이므로 할 수 없습니다. GDPR이 도입되면서 EU 시민의 스크랩된 데이터는 완전히 변경되고 변경됩니다. 데이터를 설명할 수 있는 중요한 변수는 이름, 번호, 나이, 이메일, 연락처, IP 주소 등입니다. 

수상한 수법 사용하지 않기 - 마우스 클릭 몇 번으로 웹사이트의 모든 보안 프로토콜을 우회하는 수백만 가지 인터넷 도구와 트릭을 사용할 수 있습니다. 하지만 웹 관리자는 사용자의 속임수를 쉽게 감지할 수 있으며, 대부분의 경우 사용자의 속임수를 피하여 사용자를 속입니다. 웹 사이트에 해를 끼칠 수 있는 활동을 발견하면 사용자를 차단할 수 있습니다. 따라서 대상 웹사이트의 평판을 유지하는 도구와 서비스를 고수해야 합니다.

사이트를 망치지 마세요 - 웹사이트의 실시간 변경 사항을 감지하는 것과 서비스 거부(DOS) 공격을 수행하는 것에는 큰 차이가 있습니다. 웹 스크레이퍼를 사용하면 요청 사이에 약간의 지연이 발생할 수 있다는 점을 알아야 합니다. 웹사이트는 사용자의 일반 요청을 감지하고 IDS 인프라가 있는 경우 사용자의 IP를 차단합니다. 

웹 스크래핑용 프록시

프록시는 요청을 보내는 클라이언트와 요청을 받는 서버 사이에서 중개자 또는 제3자 서버 역할을 한다는 것을 알고 계실 것입니다. 프록시는 데이터를 효율적으로 추출하고 차단될 가능성을 줄여주기 때문에 웹 스크래핑에 필수적입니다. 프록시는 여러 개의 IP 주소를 제공하므로 차단되지 않고 다른 IP 주소를 사용하여 대상 웹사이트로 여러 요청을 보낼 수 있습니다. 프록시를 사용하여 지역적으로 제한된 웹사이트의 콘텐츠에 액세스할 수도 있습니다. 

간단히 말해 프록시는 아래 두 가지 이유로 웹 스크래핑에 유용합니다.

  • 대상 웹사이트에서 소스 컴퓨터의 IP 주소를 숨깁니다.
  • 대상 웹사이트의 요금 한도를 초과하는 데 도움이 됩니다.

웹 스크래핑을 위해 다음과 같은 다양한 유형의 프록시를 선택할 수 있습니다.

데이터 센터 IP - 데이터 센터에서 호스팅되는 서버 IP 주소입니다. 

주거용 IP - 데이터센터 IP보다 더 비싸며 개인 가정의 IP 주소입니다. 주거용 네트워크를 통해 요청을 전달하는 데 사용할 수 있습니다.

모바일 IP - 개인 모바일 디바이스의 IP입니다. 모바일 IP 주소의 비용이 다른 IP에 비해 너무 높습니다.

프록시 통합

다음 단계에 따라 프록시를 기존 웹 스크래핑 소프트웨어에 통합할 수 있습니다.

  • 프록시를 통해 웹 스크레이퍼의 요청을 전달합니다.
  • 요청 사이에 프록시 서버의 IP 주소를 적절히 교체합니다.

첫 번째 단계는 파이썬의 요청 모듈을 가져오고 프록시 연결 URL만 전달하면 되므로 간단합니다. 그런 다음 아래 단계와 같이 대상 웹사이트로 get 요청을 보내야 합니다.

import requests

proxies = {'http': 'http://user:[email protected]:3128/'}

requests.get('http://example.org', proxies=proxies)

두 번째 단계는 약간 복잡하며 특정 시간에 얼마나 많은 병렬 처리를 수행하는지, 대상 웹사이트의 속도 제한에 얼마나 많은 여유를 유지하려는지에 따라 달라집니다.

결론

웹 스크래핑을 사용하면 타사 웹사이트로부터 데이터를 수집하여 필요에 따라 사용할 수 있습니다. 검색 엔진 결과 최적화, 전자상거래 가격 모니터링, 리드 생성 및 뉴스 집계에 매우 강력합니다. 웹 스크래핑은 웹사이트에서 데이터를 수집하는 동안 해야 할 일과 하지 말아야 할 일을 구체적으로 처리해야 하기 때문에 그렇게 간단하지 않습니다. 사이트에 해를 끼치거나 데이터를 변경하지 않는 방식으로 웹사이트에서 데이터를 추출해야 합니다. 프록시는 신원을 숨기고 금지 또는 차단되는 것을 방지하므로 웹사이트에서 데이터를 추출하는 데 매우 유용합니다. 필요에 따라 거주지 프록시 또는 데이터센터 프록시를 사용할 수 있습니다.