Node.js запросов и пустой вывод cheerio - PullRequest
2 голосов
/ 27 марта 2020

Я изучаю утилизацию, используя node.js запросов и приветствие. Я пишу простой код для отображения заголовка с веб-страницы.

Мой код:

const request = require("request");
const cheerio = require("cheerio");

const url = "https://singapore.craigslist.org/d/automotive-services/search/aos"

async function scrapeCraigslist() {

    try {

        const htmResult = await request.get(url);
        const $ = await cheerio.load(htmResult);
         $(".result-info").each((index, element) => {

          const title = $(element)
          .children(".result-title")
          .text();

          console.log(title);
          console.log("sk");

        });

    } catch (err) {

        console.error(err);
    }
}


scrapeCraigslist();


Но когда я запускаю код, я ничего не получаю, ошибки и нет вывода.

Вывод:

Microsoft Windows [Version 10.0.18362.720]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Ahmed-PC\craigslist>node index.js

C:\Users\Ahmed-PC\craigslist>

Мой выбор и результат поступают в Chrome Developer Tools console. но не входит node.js код

1 Ответ

1 голос
/ 27 марта 2020

Вы используете запрос с интерфейсом в стиле обещания, если вы хотите sh, чтобы сделать это, вам нужно будет использовать запрос-обещание (или вы можете использовать Ax ios, node- fetch et c.).

Если вы используете запрос-обещание, ваш код должен работать нормально:

запрос-обещание

const request = require("request");
const cheerio = require("cheerio");
const rp = require("request-promise");

const url = "https://singapore.craigslist.org/d/automotive-services/search/aos"

async function scrapeCraigslist() {

    try {

        const htmResult = await rp.get(url);
        const $ = await cheerio.load(htmResult);
        $(".result-info").each((index, element) => {

        const title = $(element)
        .children(".result-title")
        .text();

        console.log(title);
        console.log("sk");

        });

    } catch (err) {

        console.error(err);
    }
}

scrapeCraigslist();

запрос (с обратным вызовом)

const request = require("request");
const cheerio = require("cheerio");

const url = "https://singapore.craigslist.org/d/automotive-services/search/aos"

async function scrapeCraigslist() {

    request.get(url, async (error, response, htmResult) => { 
            if (error) {
                // Something went wrong
                console.error(error);
            } else {
                // The request was successful
                const $ = await cheerio.load(htmResult);
                $(".result-info").each((index, element) => {

                    const title = $(element)
                    .children(".result-title")
                    .text();

                    console.log(title);
                    console.log("sk");
                });
            }
    });

}

scrapeCraigslist();
...