Веб соскоб это процесс программно получения информации из Интернета.Как объем данных в Интернете увеличилось, эта практика становится все более распространенным, и ряд мощных услуг появились, чтобы упростить его.К сожалению, большинство из них являются дорогостоящими, ограничено или имеют другие недостатки.Вместо того, чтобы обратиться к одному из этих сторонних ресурсах, Вы можете использовать Node.js, чтобы создать мощный веб-scraper, который является одновременно чрезвычайно универсальны и совершенно бесплатно .
В этой статье I’ буду покрывать следующее:
- Два Node.js модули, запрос и Cheerio, которые упрощают Веб соскоб;
- Вводный приложение, которое получает и отображает некоторые данные пробы;
- Более продвинутое приложение, которое находит ключевые слова, связанные с Google поиск .
Кроме того, несколько вещей, стоит отметить, прежде чем мы пойдем дальше: базовое понимание Node.js рекомендуется для этой article;Так что, если вы еще этого не сделали, проверить его out 1 прежде чем продолжить.Кроме того, веб-соскоб может нарушать условия предоставления услуг для некоторых веб-сайтах, так что просто убедитесь, что вы находитесь в ясно там, прежде чем делать какие-либо тяжкое выскабливание .
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, я использовал для этого, например, в вашем браузере и начать изучать страницу с помощью инструментов разработчика, вы заметите, что большой зеленый элемент температура, кого я построил селектор для.Наконец, теперь, когда мы ухватился нашего элемента, это простой вопрос, чтобы схватить эти данные и регистрации его в консоли .
Мы можем принять его много мест отсюда.Я призываю вас, чтобы поиграть, и я кратко изложил основные шаги для вас ниже.Они заключаются в следующем .
В вашей Browser
- Посетите страницу, которую вы хотите, чтобы очистить в вашем браузере, будучи уверенным, чтобы записать его адрес .
- Найти элемент (ы) вы хотите данные, и выяснить, селектор JQuery для них .
В вашей Code
- Использование запроса для загрузки страницы в вашем URL .
- Передайте полученные данные в Cheerio так что вы можете получить JQuery-подобный интерфейс .
- Используйте селектор вы написали ранее, чтобы очистить ваши данные со страницы .
Идем дальше: Данные Mining
Более продвинутые использования веб-выскабливание часто могут быть классифицированы как mining 5 , процесс загрузки множество веб-страниц и создания отчетов на основе данных, полученных от них.Node.js хорошо масштабируется для применения такого рода .
Я написал небольшой извлечения данных приложение в Node.js, менее чем сто строк, чтобы показать, как мы должны использовать две библиотеки, которые я упоминал выше, в более сложной реализации.Приложение находит наиболее популярные термины, связанные с определенным Поиск в Google с помощью анализа текста по каждой из страниц, связанных с на первой странице Google результаты .
Есть три основных этапа в …
Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров