Puppeteer не возвращает содержимое страницы в Ubuntu xenial (размещается в Scaleway) - PullRequest
0 голосов
/ 29 декабря 2018

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

Однако, поскольку я хочу, чтобы этот бот работал постоянно, я купил сервер, который может хранить информацию о боте и поддерживать его работу (этот сервер работает под управлением Ubuntu Xenial).Здесь начинаются проблемы.Прежде всего, я не мог бы управлять кукольником без args: ['--no-sandbox', '--disable-setuid-sandbox'].Хотя это большой риск для безопасности, я просто хотел, чтобы что-то работало, поэтому я решил.Проблема в том, что этот код все еще работает в терминале Visual Studio, и я получаю информацию о странице, но на сервере возвращается пустая строка.

const ch = require("cheerio");
const pp = require("puppeteer");
const url = "http://www.animalplanet.com/pets/cat-facts/";

var randomFact;

// the below is a promise items will return out of sync
pp
    .launch({headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox'], ignoreHTTPSErrors: true, dumpio: false})
    .then(function(browser) {
        console.log("1");
        return browser.newPage();
    })
    .then(function(page) {
        console.log("2");
        return page.goto(url).then(function() {
            console.log("3");
            return page.content().catch();
        });
    })
    .then(function(html) {
        randomFact = ch(".global-body-text.description", html).text();
        console.log(ch(".global-body-text.description", html));
        console.log("4");
        console.log(randomFact);
    })
    .catch(function(err) {
        console.log("Page not found (" + url + ")");
    });

Выше приведен код, который я использовал.Если мне нужно что-то сделать, чтобы это работало на сервере, пожалуйста, дайте мне знать.

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