Dunaevlad
@Dunaevlad

Можно ли в Pyppeteer использовать переменные?

Как в page.evaluate() использовать переменные.

Пробую,
page.evaluate((query), "console.log(query)", query)

выдаеш ошибку. Смотрел в док-ию по JS, там следующее:
const links = await page.evaluate((evalVar) => {

  console.log(evalVar); // 2. should be defined now
  …

}, evalVar); // 1. pass variable as an argument
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
drygdryg
@drygdryg
Python-разработчик
Вы смотрели в документацию для JavaScript-версии (Puppeteer), там в page.evaluate нужно передавать JavaScript-функцию или выражение. В Python-версии этот метод принимает строку с JS-кодом: https://miyakogi.github.io/pyppeteer/reference.htm...
Здесь вы попытались смешать JS и Python — получилось что-то некорректное:
page.evaluate((query), "console.log(query)", query)

Вам следует подставлять переменные в строку с JS-кодом. Это можно сделать, например, с помощью f-строк:
await page.evaluate(f'console.log("{query}")')
Но учитывайте, что подстановка непроверенных данных в JS-код может вызвать проблемы с безопасностью (инъекции кода). Поэтому подставляйте значения в код только из проверенных источников или делайте валидацию значения перед подстановкой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы