Синтаксис селектора в Puppeteer - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь создать сценарий, который частично выполняет функции нажатия кнопок на веб-странице с помощью Puppeteer. Я продолжаю получать ошибку «недопустимый селектор» или переменная остается неопределенной после попытки выполнить строку, показанную ниже, показанную ниже.

var termselector = await page.$$( ":button" );
//yields "not a valid selector"

или


var termselector = await page.$$( "#zci-images > div.detail.detail--slider.detail--images.detail--xd > div > div.detail__panes.js-detail-panes > div:nth-child(1) > div > div.detail__body.detail__body--images > div > div > a" );
//yields "termselector undefined"

Возможно, я просто фундаментально непонимание того, как работают селекторы, но я просмотрел некоторую документацию JQuery, и я все еще не могу правильно отформатировать свои селекторы. Где я могу найти правила правильного синтаксиса селектора для использования в кукловоде? Прошу простить меня за незнание

1 Ответ

2 голосов
/ 09 июля 2020

В строке:

await page.$$( );

вы должны использовать селекторы: https://www.w3schools.com/cssref/css_selectors.asp

Или вы можете использовать запрос тоже: https://www.w3schools.com/xml/xpath_syntax.asp

await page.$x( );

Если вы хорошо знаете JQuery, возможно, попробуйте :

https://tshaped.io/javascript-scraping-for-marketers-cheerio-and-puppeteer/ https://github.com/cheeriojs/cheerio

CSS пример селектора для первого изображения на предоставленной вами ссылке :

$$('#zero_click_wrapper img[src^="//external-content"]')[0]

Это означает:

  • начать сопоставление HTML узлов с идентификатором: zero_click_wrapper
  • ... за которым следует изображение img, тег src начинается с //external-content
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...