웹 크롤러란 무엇입니까? | Node.js 및 JavaScript로 간단한 웹 크롤러 빌드
검색 엔진은 인터넷에 어떤 웹사이트가 있는지 마술처럼 알지 못합니다. 이것이 바로 웹 크롤러의 역할이 그림에 등장하는 곳입니다.
웹 크롤러란 무엇입니까?
웹 크롤러는 인터넷을 통해 콘텐츠를 다운로드하고 인덱싱하는 봇입니다. 이러한 봇의 목표는 인터넷의 모든 웹 페이지에 대한 간략한 아이디어를 얻거나 필요할 때 정보 검색이 쉬워지도록 하는 것입니다.
웹 크롤러는 독자가 특정 책을 더 쉽게 찾을 수 있도록 해당 책의 카탈로그를 만드는 도서관에서 책을 정리하는 사서와 같습니다. 책을 분류하기 위해 사서는 주제, 요약 및 필요한 경우 내용의 일부를 읽어야 합니다.
웹 크롤러는 어떻게 작동합니까?
인터넷에 총 몇 개의 웹 페이지가 존재하는지 아는 것은 매우 어렵습니다. 웹 크롤러는 특정 수의 알려진 URL로 시작하여 해당 웹 페이지를 크롤링하면서 다른 웹 페이지에 대한 링크를 찾습니다. 웹 크롤러는 특정 정책에 따라 크롤링할 항목과 크롤링 빈도를 결정합니다.
어떤 웹페이지를 먼저 크롤링할 것인지도 몇 가지 매개변수를 고려하여 결정됩니다. 예를 들어 방문자가 많은 웹페이지는 시작하기에 좋은 옵션이며 검색 엔진에서 색인을 생성합니다.
Node.js 및 JavaScript로 간단한 웹 크롤러 빌드
cheerio
및 request
모듈을 사용할 것입니다.다음 명령을 사용하여 이러한 종속성을 설치합니다.
npm install --save cheerio
npm install --save request
다음 코드는 필요한 모듈을 가져오고 Hacker News 에 요청합니다.
요청이 성공했는지 확인하기 위해 응답의 상태 코드를 콘솔에 기록합니다.
var request = require('request');
var cheerio = require('cheerio');
var fs = require('fs');
request("https://news.ycombinator.com/news", (error, response, body) => {
if(error) {
console.log("Error: " + error);
}
console.log("Status code: " + response.statusCode);
});
fs
모듈은 파일을 처리하는 데 사용되며 내장 모듈입니다.브라우저의 개발자 도구를 사용하여 데이터 구조를 관찰합니다.
tr
클래스의 athing
요소가 있음을 알 수 있습니다.모든
tr.athing
요소를 살펴보고 자식td.title
요소를 선택하여 게시물 제목을 가져오고 a
요소를 선택하여 하이퍼링크를 가져옵니다. 이 작업은 이전 코드 블록의 console.log
뒤에 다음 코드를 추가하여 수행됩니다. var $ = cheerio.load(body);
$('tr.athing:has(td.votelinks)').each(function( index ) {
var title = $(this).find('td.title > a').text().trim();
var link = $(this).find('td.title > a').attr('href');
fs.appendFileSync('hackernews.txt', title + '\n' + link + '\n');
});
채용과 관련된 게시물도 건너뜁니다(주의 깊게 관찰하면 해당 게시물의
tr.athing
요소에 자식td.votelinks
요소가 없음을 알 수 있습니다.이제 전체 코드는 다음과 같습니다.
var request = require('request');
var cheerio = require('cheerio');
var fs = require('fs');
request("https://news.ycombinator.com/news", function(error, response, body) {
if(error) {
console.log("Error: " + error);
}
console.log("Status code: " + response.statusCode);
var $ = cheerio.load(body);
$('tr.athing:has(td.votelinks)').each(function( index ) {
var title = $(this).find('td.title > a').text().trim();
var link = $(this).find('td.title > a').attr('href');
fs.appendFileSync('hackernews.txt', title + '\n' + link + '\n');
});
});
데이터는
hackernews.txt
라는 파일에 저장됩니다.간단한 웹 크롤러가 준비되었습니다!!
참조
Reference
이 문제에 관하여(웹 크롤러란 무엇입니까? | Node.js 및 JavaScript로 간단한 웹 크롤러 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rahulpathakgithub/what-is-a-web-crawler-building-a-simple-web-crawler-with-node-js-and-javascript-4p56텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)