Новый способ с использованием ES7 / Promises
Обычно, когда вы копируете, вы хотите использовать какой-то метод для
- Получить ресурс на веб-сервере (обычно HTML-документ)
- Считайте этот ресурс и работайте с ним как
- Структура DOM / tree и сделайте его навигационным
- , проанализируйте его как документ-токен с чем-то вроде SAS.
И у дерева, и у разбора токена есть свои преимущества, но дерево обычно существенно проще.Мы сделаем это.Проверьте request-обещание , вот как это работает:
const rp = require('request-promise');
const cheerio = require('cheerio'); // Basically jQuery for node.js
const options = {
uri: 'http://www.google.com',
transform: function (body) {
return cheerio.load(body);
}
};
rp(options)
.then(function ($) {
// Process html like you would with jQuery...
})
.catch(function (err) {
// Crawling failed or Cheerio
Это использует cheerio , который по сути является легкой серверной библиотекой jQuery-esque (которому не нужен объект окна или jsdom).
Поскольку вы используете обещания, вы также можете написать это в асинхронной функции.Это будет выглядеть синхронно, но с ES7 будет асинхронно:
async function parseDocument() {
let $;
try {
$ = await rp(options);
} catch (err) { console.error(err); }
console.log( $('title').text() ); // prints just the text in the <title>
}