웹 데이터 추출을 위한 Portia 대안
게시 됨: 2019-07-15Portia는 사용자가 프로그래밍 지식 없이도 웹사이트를 크롤링할 수 있는 시각적 도구였습니다. 호스팅 서비스였으나 비주얼 스크레이퍼의 사용량 감소로 인해 중단되어 현재는 더 이상 사용하지 않습니다. 그렇다면 Portia가 존재했을 때 사람들은 어떻게 사용했을까요? Portia를 사용하려면 방문해야 하는 URL의 패턴을 입력한 다음 포인트 앤 클릭 제스처를 사용하거나 CSS 또는 XPath를 사용하여 해당 웹페이지의 요소를 선택해야 합니다. 사용하기 쉬웠음에도 불구하고 Portia의 가장 큰 문제점은 다음과 같습니다.
- 다른 오픈 소스 웹 스크래핑 도구와 비교하여 제어하는 데 시간이 많이 걸리는 도구였습니다.
- 웹사이트 탐색은 다루기 어려웠습니다.
- Portia가 불필요한 URL을 방문하지 않도록 크롤링을 시작할 때 대상 페이지를 언급해야 했습니다.
- 스크랩한 데이터 포인트를 저장하기 위해 데이터베이스를 연결할 방법이 없었습니다.
시각적 웹 스크레이퍼의 장점은 무엇입니까?
일회성 웹 스크래핑 요구 사항이 있는 경우 시각적 웹 스크래퍼를 사용할 수 있지만 비즈니스 워크플로의 일부로 사용하지 않는 것이 좋습니다. 매우 적은 수의 정적 웹 페이지에서 데이터를 크롤링해야 하고 너무 가끔(예: 한 달에 한 번)해야 하는 비즈니스를 운영하는 경우 이해하기 위해 스크랩해야 하는 데이터를 알고 있는 팀의 누군가를 얻을 수 있습니다. 몇 시간 내에 시각적 웹 스크레이퍼의 작동 및 때때로 웹 데이터 추출. 시각적 웹 크롤러는 기술 팀이 없고 스크래핑 요구 사항이 적은 소규모 비즈니스에 특히 유용합니다.
시각적 웹 크롤러는 웹 페이지에서 "요소 검사"를 클릭하고 HTML 콘텐츠에서 데이터를 복사하여 붙여넣는 것과 거의 같습니다. 대신 시각적 웹 스크레이퍼를 사용할 때 웹 페이지의 일부를 클릭하면 소프트웨어가 데이터를 선택한 위치에 복사합니다.

시각적 웹 스크레이퍼는 어떤 영역에서 부족합니까?
그러나 시각적 스크레이퍼는 수행해야 할 심각한 작업이 있을 때 부족합니다.
비즈니스 워크플로(자동화해야 함)의 일부로 일부 데이터 스크래핑을 포함해야 할 수도 있습니다.
수백 또는 수천 페이지에 걸쳐 데이터를 스크랩해야 할 수 있으며 매우 자주 새로 고쳐야 할 수도 있습니다.
특정 비즈니스 모듈에 대해 스크랩한 데이터의 라이브 피드가 필요할 수 있습니다. 위의 대부분의 경우 코드 기반 웹 스크레이퍼는 시각적 스크레이퍼보다 훨씬 편리합니다.

대부분의 대량 스크래핑 프로젝트는 다양한 항목에 대한 웹 데이터 추출 데이터에 대해 수많은 유사한 웹 페이지를 크롤링해야 할 필요성을 찾습니다. 이러한 항목은 전자 예약 웹 사이트의 항공편 정보에서 전자 상거래 웹 사이트의 제품 세부 정보에 이르기까지 다양합니다. 이러한 시나리오에 적용되는 논리는 몇 개의 웹 페이지를 사용하여 웹 페이지에 데이터가 저장되는 패턴을 이해하려고 하고, 정확히 동일한 구조의 페이지는 물론 유사한 구조의 페이지도 크롤링할 수 있는 코드를 사용한다는 것입니다. . 또한 웹사이트에서 사용 가능한 모든 페이지를 스크랩하는 동안 특정 구조의 페이지를 무시해야 할 수도 있습니다. 이러한 모든 사용자 정의는 시각적 스크레이퍼에서 가능하지 않으므로 시각적 스크레이퍼를 사용하여 너무 많은 페이지를 긁는 것은 권장되지 않습니다.
반면에 몇 주 또는 몇 달마다 웹 사이트의 모양과 느낌이 변경되기 때문에 웹 사이트의 사용자 인터페이스가 변경될 때마다 시각적 웹 스크레이퍼를 훈련해야 할 수도 있습니다. 반면에 코드 기반 스크레이퍼를 사용할 때 웹사이트가 구조적으로 여전히 동일하게 유지될 수 있기 때문에 종종 UI 변경으로 인해 스크레이퍼의 변경이 필요하지 않을 수도 있습니다. 스크레이퍼의 변경이 필요할 수 있는 사용자 인터페이스의 일부 변경이 있더라도 변경 사항은 일반적으로 최소이며 변경 사항에 맞게 스크레이퍼를 조정하는 것은 간단합니다.
우리에게는 어떤 다른 대안이 있습니까?
Portia에는 많은 대안이 있습니다. Python, R 및 Golang과 같은 언어는 웹 페이지에서 웹 데이터를 추출하기 위해 전 세계의 개발자 및 웹 스크래핑 팀에서 사용하고 있습니다. 프로세스를 더 빠르게 만들기 위해 새로운 방법이 개발되고 있습니다. 예를 들어 Golang의 병렬 프로그래밍 및 캐싱을 통해 Colly라는 패키지를 사용하여 다음과 같은 사용자 지정 설정을 사용할 수 있습니다.
- 주어진 시간에 동시에 크롤링하려는 페이지 수입니다.
- 스크레이퍼가 웹 페이지에서 긁기 시작하면 스크레이퍼가 가야 하는 최대 깊이입니다. (즉, 최대 깊이를 3으로 설정하면 상위 페이지를 크롤링하고 해당 페이지에서 찾은 URL로 이동하여 크롤링한 다음 해당 페이지에서 찾은 URL로 이동하여 해당 페이지도 크롤링하지만 이제는 세 번째 페이지에서 URL을 찾으면 더 이상 이동하지 않습니다.
- URL에 있는 단어에 대한 검사를 설정할 수 있습니다. 즉, URL에 단어가 있는 경우 해당 URL의 웹페이지를 스크랩해야 합니다. 또는 제외를 설정할 수 있습니다. 특정 단어가 포함된 URL은 스크레이퍼에서 액세스해서는 안 됩니다.
이것들은 웹 스크레이퍼를 스스로 구축할 때 얻을 수 있는 수백 가지의 작은 기능 중 일부에 불과합니다.
DaaS 제공업체와 사내 팀?
기술 팀이 없거나 스크립팅 언어에 대한 기본적인 이해가 없는 구성원이 있는 대부분의 비즈니스는 사내 스크래핑 팀 구축을 시작하지 않으려고 노력해야 합니다. 그 이유는 간단합니다. 개발자를 모집하고 비즈니스 요구에 맞는 완전히 새로운 웹 스크래핑 시스템을 구축 및 유지 관리하도록 하는 데 쓰는 돈은 엄청날 것입니다. 그리고 결국 소규모 회사이고 웹 스크래핑이 비즈니스의 원동력이 아닌 경우(즉, 비즈니스가 웹에서 크롤링하는 데이터를 중심으로 하지 않는 경우) 사내 팀.
이 경우 간단한 솔루션은 귀하의 요구 사항을 받아들이고 귀하가 선택한 형식으로 데이터를 제공하는 DaaS 제공업체입니다. PromptCloud 팀은 웹 스크래핑을 기업과 기업을 위한 2단계 프로세스로 줄이는 데 큰 자부심을 갖고 있습니다.
결론
시각적 도구는 비즈니스 팀에 유용하지만 웹 스크래핑이 단순한 비즈니스 작업이 아니라는 데 동의할 수 있습니다. 효율적이고 빠르며 완전히 사용자 정의할 수 있어야 하는 작업입니다. 대량의 웹 스크래핑 요구 사항이 있거나 훨씬 더 큰 규모의 웹 데이터 추출을 원하는 경우 웹 스크래핑 서비스를 사용하는 것이 좋습니다.
프로그래밍에 익숙하지 않거나 요구 사항이 복잡한 경우 PromptCloud와 같은 완전 관리형 서비스 제공업체를 사용하여 기술적 번거로움이나 도구 학습 없이 자동화된 방식으로 깨끗한 데이터를 얻을 수 있습니다.
