Использование Puppeteer в веб-приложении Node.js для этого нужно? - PullRequest
1 голос
/ 26 сентября 2019

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

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

Пока у меня это есть в моемКласс сервера node.js:

var express = require('express');

var app = express();

app.use('/public', express.static('public'));
app.use('/node_modules', express.static('node_modules')); 

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html')
});

app.listen(3000);

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

const puppeteer = require('puppeteer');

async function getTitle() {
  const browser = await puppeteer.connect({
    browserWSEndpoint: 'ws://127.0.0.1:9222/devtools/browser/9f0a2240-2cb7-4efa-ac3c-8ef883d36d12',
  });
  const page = await browser.newPage();
  await page.goto('http://example.com');
  const title = await page.title();
  await page.close();
  await browser.disconnect();
  return title;
}

getTitle().then(console.log);

browserWSEndpoint меняется каждый раз, когда вы снова открываете браузер, насколько я знаю, что не идеально, поскольку веб-приложение не будет работать, если вы не меняете каждый раз исходный код,Кроме того, я даже не уверен, как найти ссылку / devtools / browser.Все, что я нашел при поиске, это набрать chrome.exe и некоторые флаги, затем перейти к localhost: 5200 или что-то в этом роде.Тем не менее, я вижу только / devtools / pages / .. на этой странице.Хотя это не было решением, которое я искал в любом случае.

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

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