Кукловод правильно удаляет новости из гугла на локальном сервере, а не в геройке - PullRequest
1 голос
/ 13 апреля 2020

Я добавил необходимые пакеты сборки. Также нет ошибок, отображаемых в логах героку. Локально развернутое приложение работает совершенно нормально и удаляет нужные новости, но на героку страница просто обновляется и ничего не отображает

app.post("/news",function(req,res){
var pla= req.body.place;
var url='https://www.google.com/search?q=covid+19+'+pla+'&sxsrf=ALeKk02SupK-SO625SAtNAmqA5CHUj5xjg:1586447007701&source=lnms&tbm=nws&sa=X&ved=2ahUKEwikieXS19voAhXAxzgGHV5bCcQQ_AUoAXoECBwQAw&biw=1536&bih=535';

(async () => {
    const browser = await puppeteer.launch({args: ['--no-sandbox']});
    const page = await browser.newPage();

    await page.goto(url);

    var data = await page.evaluate(() =>
        Array.from(document.querySelectorAll('div.g'))
            .map(compact => ({
                headline: compact.querySelector('h3').innerText.trim(),
                img: compact.querySelector("img") === null ? 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/No_image_3x4.svg/1280px-No_image_3x4.svg.png' : compact.querySelector("img.th.BbeB2d").src,
                url: compact.querySelector("h3.r.dO0Ag>a").href,
                source: compact.querySelector("div.gG0TJc>div.dhIWPd>span.xQ82C.e8fRJf").innerText.trim(),
                time:  compact.querySelector("div.gG0TJc>div.dhIWPd>span.f.nsa.fwzPFf").innerText.trim(),
                desc : compact.querySelector("div.st").innerText.trim()
            }))
    )

    console.log(data);
    res.render('news.ejs',{data: data});
    await browser.close();
})();
});

1 Ответ

0 голосов
/ 25 апреля 2020

Я бы посоветовал вам добавить флаг '--disable-setuid-sandbox' в команду запуска кукловода:

const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});

У меня были некоторые проблемы в прошлом, и если я правильно помню, флаг помог.

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