Nodejs - Получить контент с внешнего сайта - PullRequest
0 голосов
/ 28 апреля 2018

Я написал простой веб-сайт, который возвращает случайное 4-значное число при каждой перезагрузке. Итак, я хочу прочитать эту цифру через Node.js .. Гуглил пару раз и обнаружил, что axios и fs были моей лучшей ставкой ..

Мой сайт: SOLVED

Сайт выше работает в моем браузере ... может не на вашем ... поэтому я сделал временный сайт для этого ... он все еще не работает, как ожидалось: SOLVED

Я придумал это:

let axios = require('axios');
let cheerio = require('cheerio');
let fs = require('fs'); 

axios.get('http://thedico.com/third.php')
    .then((response) => {
        if(response.status === 200) {
          const html = response.data;
          const $ = cheerio.load(html); 
            res.send("Status returned 200...!");
    }
    }, (error) => console.log(error) res.send("error...!"));

    res.send("Done...!");

Я использую этот код с Google Cloud Functions a.k.a gCloud, но этот код не печатает вывод или возвращает данные моего веб-сайта. Что мне делать?

Вещи, в которых я убедился:

  • Мой сайт работает, и время загрузки составляет около 440MS на нормальной скорости.
  • Мой биллинг 'gCloud' установлен и включен
  • все работает нормально при ручной перезагрузке

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2018

Я попробовал с axios и запрос, а теперь он работает нормально. Также у вас есть пара ошибок в вашем коде.

const request = require("request");
const axios = require('axios');
const cheerio = require('cheerio');
const fs = require('fs');

с модулем запроса

request('https://alexandrarawand.000webhostapp.com/index.php', function (error, response, html) {
    if (!error && response.statusCode == 200) {
        var $ = cheerio.load(html);
        // Get text 
        console.log("------- with request module -------")
        console.log($.text());
        // Get HTML 
        //console.log($.html());
    }
});

с модулем Axios

axios.get('https://alexandrarawand.000webhostapp.com/index.php')
    .then((response) => {
        if (response.status === 200) {
            const html = response.data;
            const $ = cheerio.load(html);
            // Get text 
            console.log("------- with axios module -------")
            console.log($.text());
            // Get HTML 
            //console.log($.html());
        }
    })
    .catch((err) => {
        throw new Error(err);
    });

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...