Веб соскоб с Node.js

Веб соскоб это процесс программно извлечения информации из Интернета.Как объем данных в Интернете увеличилось, эта практика становится все более распространенным, и ряд мощных услуг появились упростить ее.К сожалению, большинство из них являются дорогостоящими, ограничено или имеют другие недостатки.Вместо того, чтобы обратиться к одному из этих сторонних ресурсов, Вы можете использовать Node.js создать мощный веб-scraper, который является одновременно чрезвычайно универсальный и абсолютно бесплатно .

В этой статье I’ будете покрытия следующее:

  • Два Node.js модули, запрос и Ваше здоровье, которые упрощают веб выскабливание;
  • Вводный приложение, которое получает и отображает некоторые данные пробы;
  • Передовое приложение более, что находит ключевые слова, связанные с Google поиск .

Кроме того, несколько вещей, стоит отметить, прежде чем мы пойдем дальше: базовое понимание Node.js рекомендуется для этой article;поэтому, если вы еще этого не сделали, проверить его out __19 | | 1__18 прежде чем продолжить.Кроме того, веб-соскоб может нарушать условия предоставления услуг для некоторых веб-сайтов, так что просто убедитесь, что вы находитесь в ясно есть, прежде чем делать какие-либо тяжкое выскабливание .

Modules

Для приведения в модулях Node.js я упоминал ранее, мы будем использовать NPM 2 , Package Manager Узел (если вы слышали о Бауэр, это все равно, что —кроме, вы используете НПМ установить Бауэр).НПМ утилита управления пакетами, которая автоматически устанавливается вместе с Node.js, чтобы сделать процесс использования модулей, как безболезненно, насколько это возможно.По умолчанию, НПМ устанавливает модули в папке node_modules в каталог, где его вызова, поэтому убедитесь, что назвать его в папке проекта .

И без дальнейших церемоний, вот модули которые мы будем использовать .

Request

В то время как Node.js не предусматривает простые методы загрузки данных из Интернета с помощью HTTP и HTTPS интерфейсы, вы должны обращаться с ними по отдельности, не говоря уже о переадресовывает и других вопросов, которые появляются, когда вы начинаете работать с веб-выскабливание. Запрос module 3 сливается эти методы, абстрагирует трудности и представляет вам с одной унифицированный интерфейс для создания запросов.Мы будем использовать этот модуль для загрузки веб-страниц непосредственно в память.Чтобы установить его, запустить npm install request от вашего терминала в каталог, где ваш главный файл Node.js будет расположен .

Cheerio

Cheerio 4 позволяет работать с веб-скачанных данных, используя тот же синтаксис, что JQuery нанимает.Вцитировать копию на своей домашней странице, “Ваше здоровье является быстрым, гибким и худой реализация JQuery разработан специально для сервера.” Приведение в Cheerio позволяет нам сосредоточиться на данных, которые мы непосредственно скачать, нежели на разбор его.Чтобы установить его, запустить npm install cheerio от вашего терминала в каталог, где ваш главный файл Node.js будет расположен .

Implementation

Код ниже быстро небольшое приложение, чтобы поймать температуру с веб-сайта погоды.Я выскочил в моей код города на конце URL мы скачивания, но если вы хотите, чтобы попробовать его, вы можете положить ваши там (просто убедитесь, что для установки двух модулей мы пытаемся требовать сначала, выможете узнать, как это сделать с помощью ссылок, приведенных для них выше) .

var request = require("request"),
	cheerio = require("cheerio"),
	url = "http://www.wunderground.com/cgi-bin/findweather/getForecast?&query=" + 02888;
	
request(url, function (error, response, body) {
	if (!error) {
		var $ = cheerio.load(body),
			temperature = $("[data-variable='temperature'] .wx-value").html();
			
		console.log("It’s " + temperature + " degrees Fahrenheit.");
	} else {
		console.log("We’ve encountered an error: " + error);
	}
});

Итак, что мы здесь делаем?Во-первых, мы требуем наши модули, так что мы можем получить доступ к ним позже.Затем, мы определяем на URL, мы хотим, чтобы загрузить в переменной .

Затем мы используем модуль запроса для загрузки страницы в URL, указанных выше, через request функции.Мы проходим в URL, что мы хотим, чтобы загрузить и обратного вызова, который будет обрабатывать результаты нашей просьбе.При том, что данные возвращаются, что обратного вызова вызывается и передается три переменные: error, response и body.Если запрос сталкивается с проблемой загрузку веб-страницы и не может получить данные, он будет проходить действительную объект ошибки в функции, и переменная тело будет нулевым.Прежде чем мы начнем работать с нашим данным, мы проверим, что там нет никаких ошибок;если есть, мы просто войти их так, мы можем увидеть, что пошло не так .

Если все хорошо, мы передать наши данные с к Cheerio.Тогда мы сможем обрабатывать данные, как мы бы любой другой веб-страницы, используя стандартный синтаксис JQuery.Чтобы найти эти данные, мы хотим, мы должны построить селектор, который захватывает элемент (ы), мы интересующий со страницы.Если вы перейдете к URL Я использовал для этого, например, в вашем браузере и начать изучать страницу с инструментами разработчика, вы заметите, что большая зеленая элемент температура один я построил селектор для.Наконец, теперь, когда мы получили шутка нашего элемента, это просто вопрос захвата, что данные и регистрации его в консоли .

Мы можем взять это много мест отсюда.Я призываю вас, чтобы поиграть, и я кратко изложил основные шаги для вас ниже.Они заключаются в следующем .

In Your Browser

  1. Посетите страницу вы хотите, чтобы очистить в вашем браузере, будучи уверенным, чтобы записать его адрес .
  2. Найти элемент (ы) вы хотите получить данные из, и выяснить, селектор JQuery для них .

In Your Code

  1. Использование запроса для загрузки страницы на ваш URL .
  2. Передайте полученные данные в Cheerio так что вы можете получить JQuery-подобный интерфейс .
  3. Используйте селектор вы написали ранее, чтобы очистить ваши данные со страницы .

Идем дальше: Data Mining

Ещё передовые виды использованиявеб выскабливание часто могут быть классифицированы как mining 5 , процесс загрузки много веб-страниц и создания отчетов на основе данных, извлеченных из них.Node.js хорошо масштабируется для применения такого рода .

Я написал небольшую анализа данных приложение в Node.js, менее чем сто строк, чтобы показать, как мы должны использовать две библиотеки, которые я упоминал выше, в более сложной реализации.Приложение находит наиболее популярные термины, связанные с конкретным поиска Google, анализируя текст каждой из страниц, связанных с на первой странице Go …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.