Я пытаюсь собрать информацию с существующей страницы chrome в учебных целях, используя библиотеку кукловодов. Я открыл chrome в режиме отладки, получил URL-адрес страницы chrome, на которой я нахожусь, и успешно подключился. Вот код подключения:
//open library
const puppeteer = require('puppeteer');
//connect to excisting open page
async function connectToChrome()
{
//Connect to excisting browser
const wsChromeEndpointurl = 'ws://127.0.0.1:9222/devtools/page/5D6126455A889AA7D17B66C10729F352';
const browser = await puppeteer.connect
({
browserWSEndpoint: wsChromeEndpointurl
});
Страница, к которой я подключился, находится внутри URL-адреса видео на YouTube. Цель моего кода - найти количество просмотров видео, которое я сейчас смотрю, и записать его на консоль. Когда я использовал этот код при открытии нового браузера, это было очень легко, но теперь, когда я подключился к существующей странице, я не совсем понимаю, что происходит. Я не совсем уверен, как получить доступ к информации на странице, в обычном браузере вы просто открываете новую страницу, go для ссылки, и сохраняете ее в варианте. Но сейчас я понятия не имею, как соскрести информацию со страницы, так как она уже открыта. Вот мой код:
//open library
const puppeteer = require('puppeteer');
//connect to excisting open page
async function connectToChrome()
{
//Connect to excisting browser
const wsChromeEndpointurl = 'ws://127.0.0.1:9222/devtools/page/5D6126455A889AA7D17B66C10729F352';
const browser = await puppeteer.connect
({
browserWSEndpoint: wsChromeEndpointurl
});
const [el] = await browser.page.$x('//*[@id="count"]/yt-view-count-renderer/span[1]');
const txt = await el.getProperty('textContent');
const txtJson = await txt.jsonValue();
console.log(txtJson);
};
connectToChrome();
Этот код вернется, не понимая следующего предложения строки, так как он не определен:
browser.page.$x
Каким будет правильный синтаксис для доступа к этому элементу?