제퍼넷 로고

NodeJS로 웹 스크레이퍼 만들기

시간

웹 스크래핑은 특정 연구 및 비교 목적을 얻기 위해 대규모 웹 사이트에서 데이터를 추출하는 좋은 방법입니다. 예를 들어, 제품 라인에 대한 모든 세부 정보를 보거나 스포츠 팀 또는 호텔 요금에 대한 통계를 찾을 수 있습니다.

웹에서 데이터를 수동으로 스크래핑하는 옵션이 있지만 시간이 많이 걸립니다. 웹 스크레이퍼를 만드는 방법이 궁금하고 복잡 할 수 있다고 걱정한다면 그렇게하지 마세요. 자동 도구로 데이터를 쉽게 추출하여 작업을 빠르고 쉽게 수행 할 수 있습니다. 이 도구를 빌드하려면 검색 엔진을 설정하는 몇 단계 만 거치면 쿼리하려는 항목을 찾을 수 있습니다. 이 프로세스는 NodeJS 웹 스크래핑 튜토리얼.

구축 준비 : 필요한 것

두 가지 중요한 단계가 있습니다. 웹 스크레이퍼 구축:

  • HTML 요청 라이브러리를 통해 필요한 데이터를 찾거나 제목없이 브라우저를 사용합니다.

  • 원시 데이터 구문 분석을 시작하여 필요한 특정 정보를 찾으십시오.

시작해야 할 사항은 다음과 같습니다.

  • 컴퓨터에 설치된 NodeJS 및 npm 버전 8 이상.

  • 웹 스크래핑 데이터를 요청하기위한 라이브러리 (요청 약속 또는 Axios, 인형극, 치어 리오)

예비 단계를 설정하려면 세 개의 라이브러리를 다운로드해야합니다. 요청 약속, 인형극 치리오JS 와 더불어 npm 설치 command, 님이 팔로우했습니다 by –save request-promise cheerio puppeteer. Chromium을 동시에 설치해야하기 때문에 다운로드 시간 프레임은 특히 Puppeteer에서 다를 수 있습니다. 모든 설치가 완료되면 첫 번째 요청을 할 준비가 된 것입니다.

1 단계 : 특정 검색으로 첫 번째 요청하기

모든 라이브러리를 설치했으면 첫 번째 쿼리를 요청할 준비가 된 것입니다. 새 텍스트 파일을 열어 원하는 웹 사이트에서 HTML을 수신하는 함수를 작성합니다. 검색중인 특정 데이터를 확인하고 목록 또는 웹 사이트에 대한 HTML을 가져 오는 함수를 작성해야합니다.

예를 들어, 호텔 또는 리조트 목록을 찾고 있다면 Kayak 또는 Expedia와 같은 휴가 웹 사이트를 요청할 수 있습니다. 검색 기준 (예 : hotelScraper.js)에 따라 파일 이름을 지정하십시오. Wikipedia는 많은 양의 목록 또는 데이터를 찾는 데 널리 사용됩니다.

const URL = HTTPS : // (웹 사이트 이름)

2 단계 : 원시 데이터 작업

필터링하려는 웹 사이트에서 출력 또는 원시 HTML을 받으면 해독하기 어려운 많은 양의 텍스트가 있음을 알 수 있습니다. Chrome DevTools는 웹 페이지의 HTML을 필터링하는 데 사용할 다음 도구입니다. 이 프로세스는 Google 크롬을 통해 오른쪽 클릭을 사용하여 스크랩 할 요소를 선택하여 수행됩니다. 예를 들어 호텔을 "스크래핑"하려면이 요소를 클릭하여 개별 페이지에 대한 링크를받습니다.

결과는 DevTools와 함께 별도의 창에 나타나 페이지의 HTML 소스와 관련된 모든 것을 보여줍니다. 데이터를 검토 할 때 내부에 하이퍼 링크를 나타내는 "big"태그를 찾으십시오. 원시 데이터 구문 분석은 프로세스의 다음 단계이며 이는 Cheerio.js로 수행됩니다.

3 단계 : Cheerio.js로 데이터 구문 분석

Cheerio.js는 웹 사이트 페이지의 링크를 보여주는 초기 목록의 HTML을 구문 분석하는 데 사용되는 도구입니다. 이 명령은 다음과 같이 작성됩니다.

const rp = 필요 ( '요청-약속')

const $ = 필요 ( 'cheerio')

const URL = HTTPS : // (웹 사이트 주소 정보)

결과 또는 출력에는 페이지에 "큰"태그가없는 모든 요소가 나열됩니다. 이 목록은 각 요소에 대한 특정 페이지에 대한 추가 링크를 포함하여 더 자세합니다. 이 다음 쿼리는 이전 목록의 각 요소와 관련된 모든 개별 웹 사이트에 대한 세부 정보를 제공합니다.

예를 들어 뉴욕 북부에 위치한 호텔 체인을 검색 한 경우 새 파일 (예 : hotelParse.js)을 생성하여 각 소스에서 정확한 특정 데이터를 지정하여 구문 분석 할 수 있습니다.

const rp = require ( '요청-약속')

const URL = HTTPS : // (요소의 특정 웹 사이트 – 예 : 호텔 웹 사이트)

4 단계 : 추가 구문 분석을위한 데이터 정의

이 명령은 가격 범위, 객실 크기, 위치 등과 같은 각 호텔의 정보와 요소의 링크를 지정합니다.이 정보를 찾으려면 Chrome DevTools는 구문 분석을위한 코드 구문을 찾아야합니다. 예를 들어 호텔 주소를 찾는 경우 Cheerio.js를 사용하여이를 추출 할 수 있습니다.

const rp = require ( '요청-약속')

const $ = require ( 'cheerio')

const URL = HTTPS : // (요소의 특정 웹 사이트 – 예 : 호텔 웹 사이트)

그런 다음, 예를 들어 호텔 주소에 대한 특정 데이터를 추출하는 함수를 추가하고 "firstHeading"으로 레이블을 지정합니다.

rp(URL)

.then (함수 (HTML)

console.log ($ ( '. firstHeading', HTML) .text ())

console.log ($ ( '. (특정 세부 정보 – 예 : 호텔 주소 또는 위치), HTML) .text ())

5 단계 : 모듈에 대해 추출 된 데이터 컴파일

추출 된 데이터를 모듈로 이동하면 다음 명령이 요청 된 정보를 내보내고 컴파일합니다.

const rp = require ( '요청-약속')

const $ = require ( 'cheerio')

const를 (생성 된 파일 – 예 : hotelParse) = 함수 (URL)

return rp (URL)

.then (함수 (HTML)

return

이름 : $ ( '. firstHeading', HTML) .text ()

(호텔 기준 – 주소 또는 위치)

위의 명령은 추출하려는 특정 데이터에 따라 다를 수 있습니다.

6 단계 : Net Scraper 파일 및 구문 분석 모듈 적용

다음으로 웹 스크래핑 프로세스를 위해 생성 된 두 파일 (예 : hotelScraper.js 및 hotelParse.js). 초기 파일과 모듈은 다음 명령에서 결합됩니다.

const rp = require ( '요청-약속')

const $ = require ( 'cheerio')

const를 (호텔 주소)Parse = require ( './ (호텔 주소) Parse')

const URL = http : // (웹 사이트 목록)

rp (URL)

.then (function (html)

//성공!

개별 스크래핑 기준에 따라이 결과 뒤에 더 많은 세부 정보가 있음을 알 수 있습니다. 결과 또는 출력은 각 호텔과 주소 또는 위치 또는 요청 된 정보와 함께 웹 스크래핑 검색의 모든 특정 세부 사항에 대한 자세한 목록을 생성해야합니다.

NodeJS 및 Puppeteer를 사용하여 데이터를 추출하는 실용적이고 쉬운 방법

Cheerio.js와 함께 request-promise 모듈을 사용하면 대부분의 웹 사이트에서 온라인으로 데이터를 쉽게 스크랩 할 수 있습니다. 웹 사이트에서 콘텐츠에 JavaScript를 사용하는 경우 HTTP 기반 요청 라이브러리를 사용하여 데이터를 추출하는 데 문제가 발생할 수 있습니다. Puppeteer 모듈을 사용하면 JavaScript에서 스크래핑을 실행하고 결과를 생성 할 수 있습니다.

const 인형 = require ( 'puppeteer')

const URL = 'HTTPS : // (웹 사이트)

인형극

.시작하다()

.then (function (browser)

반환 브라우저 .newPage ()

.then (기능 (페이지)

return page.goto (URL) .then (function ()

return page.content ()

위 섹션은 다양 할 수 있으며 검색 또는 찾기 위해 스크랩하는 데이터에 따라 추가 정보가 필요할 수 있습니다. 웹 스크레이퍼를 빌드하려면 쿼리하려는 웹 사이트를 기반으로 사용되는 명령에 약간의 연습과 변경이 필요할 수 있습니다.

사전 구축 된 모듈을 사용하여 웹 스크레이퍼 구축과 비교

미리 제작 된 웹 스크레이퍼는 시간이 없거나 직접 제작하는 것이 편하지 않은 경우 훨씬 더 쉬운 옵션입니다.

스크레이퍼를 작성하면 특정 도구와 사용 가능한 옵션을 배우는 데 시간이 걸릴 수 있습니다. 방법에 대한 변형을 찾을 수 있습니다. NodeJS 서버로 데이터 스크랩 다양한 라이브러리와 모듈을 사용하여 원하는 결과를 얻습니다. 많은 위대한 리소스 및 자습서 데이터 추출에 가장 적합한 도구를 결정할 수 있습니다. 우리는 또한 클라우드 기반 PAAS 구축 및 배포 스크래핑 도구를 최대한 빨리 시작하고 실행합니다.

웹에서 데이터를 선별하기 위해 고려해야 할 다른 많은 옵션이 있습니다. 클라우드 로컬 스토리지 리소스에. 사용자 친화적 인 인터페이스의 수준은 도구마다 크게 다릅니다. 일부 플랫폼은 다른 플랫폼보다 훨씬 사용하기 쉽고 일부 시스템은 다른 시스템보다 더 복잡한 명령을 필요로합니다. 일부 도구는 필요한 결과를 찾을 때까지 튜토리얼 스타일의 팁과 도움말을 한 단계에서 다음 단계로 제공합니다. 

이미지 크레디트 : Unsplash.com의 Pankaj Patel의 사진

코인 스마트. 유로파 최고의 비트 코인-보르 스
출처 : https://datafloq.com/read/building-web-scraper-nodejs/15429

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?