Captain Maslori
Ну, я понимаю, что дело в контекстах
Alhimik
Alhimik
Captain Maslori
Потому что могу :(
Captain Maslori
Я обращаюсь к конкретной функции из модуля tg-utils
Alhimik
Ты же объявил функцию sendNotification а не весь импортированный модуль.
Captain Maslori
Alhimik
Captain Maslori
Не знаю. Выглядит так, что exposeFunction синтаксически копирует выражение из аргумента и прикидывает в контекст браузера, или что-то такое
Captain Maslori
Я как сяду, проверю пару вещей мб
Captain Maslori
Просто блин, мой вопрос, возможно, про тайпскрипт
Я хотел, чтобы импорт
import { func } from './module'
Давало
const { func } = require('./module')
Captain Maslori
Я думал что это очевидно так и будет работать. А из-за того что нет, я натыкаюсь на баг puppeteer
Alhimik
Да
const tg_utils_1 = require("./tg_utils_1");
// ...
await page.exposeFunction('sendNotification', tg_utils_1.sendNotification);
На странице ты должен вызывать sendNotification, а ты, похоже вызываешь tg_utils_1.sendNotification.
Потому что в ошибке видно, что tg_utils_1 нет в контексте страницы.
Captain Maslori
Alhimik
Captain Maslori
Captain Maslori
Надо в чат по ts полагаю переезжать с моим вопросом?)
Alhimik
Captain Maslori
Alhimik
Может ты про tree shaking?
Captain Maslori
Нет...
Captain Maslori
Tsc создаёт переменную tg_utils_1
И пихает его префиксом ко всем упоминаниям функции которую я импортировал
Captain Maslori
В том числе к вызовам в контексте браузера
Captain Maslori
А изначально в коде этого нет
Captain Maslori
И происходит это из-за того что я компилирую esm-импорты в require(commonjs)-импорты
Captain Maslori
Alhimik
Либо самому добавить какой-то префикс к expose-функциям.
Alhimik
const { sendNotification } = require("./tg_utils_1");
await page.exposeFunction('tgSendNotification', sendNotification);
Alhimik
Как-то так. Тогда он не будет знать что они связаны, внутри страницы будут вызовы tgSendNotification.
Captain Maslori
Понял
Спасибо за помощь!
Daniil
Всем привет, может быть кто-то подскажет
Daniil
Как избежать блокировки ip от google captcha
Daniil
Пытался использовать прокси, но все медленные ужасно
🦋noteee
🦋noteee
Небось использовал вообще бесплатные или за пару сотен
🦋noteee
rsocks к примеру. Пул на 6к прокси стоил год назад 2700₽/24 часа
Daniil
R-lion
Всем привет, не могу установить плагин puppeteer-extra-plugin-stealth на puppeteer-cluster выдает ошибку. Помогите пожалуйста
R-lion
Karen
Добрый вечер. Использую puppeteer-extra и его captcha solver, но сайт как-то понимает, что эти действия совершены роботом и блокирует некоторые возможности. Как можно обойти?
Karen
Вебпак там, как решить?
Karen
Karen
этот вариант оставить?
Karen
Как это мне поможет дебажить только их код?)
Karen
Как я решу задачу, если буду дебажить только их код?
Captain Maslori
все, я по-тупому ответил, отмена
DD
Привет, может кто подскажет, где картинки по запросам можно попарсить? На проксю не хочется тратиться, гуглу и яндексу смена заголовков не помогает, улетаю в капчу
Captain Maslori
Aleks
Подскажите пожалуйста, пытался через puppeterr забрать отсюда https://app.beefy.finance/vault/thena-hay-busd данные Safety Score. Всё ок на локальной машине. Но сервак очень слаб и не тянет запуск puppeterr. Все js скрипты которые идут по запросам страницы пересмотрел, не пойму в котором передается значение Safety Score.
смог выцепить только - {
"id":"thena-hay-busd",
"name":"HAY-BUSD sLP",
"token":"HAY-BUSDsLP",
"tokenAddress":"0x93B32a8dfE10e9196403dd111974E325219aec24",
"tokenDecimals":18,
"tokenProviderId":"thena",
"earnedToken":"mooThenaHAY-BUSD",
"earnedTokenAddress":"0xe47E724c0b4EE9fbC16097AC103b97dc6642fd18",
"earnContractAddress":"0xe47E724c0b4EE9fbC16097AC103b97dc6642fd18",
"oracle":"lps",
"oracleId":"thena-hay-busd",
"status":"active",
"platformId":"thena",
"assets":["HAY","BUSD"],
"strategyTypeId":"lp",
"risks":["COMPLEXITY_LOW","BATTLE_TESTED","IL_NONE","MCAP_SMALL","CONTRACTS_VERIFIED"],
"addLiquidityUrl":"https://thena.fi/liquidity",
"buyTokenUrl":"https://thena.fi/swap",
"network":"bsc",
"createdAt":1673783906}
Aleks
Подскажите пожалуйста, пытался через puppeterr забрать отсюда https://app.beefy.finance/vault/thena-hay-busd данные Safety Score. Всё ок на локальной машине. Но сервак очень слаб и не тянет запуск puppeterr. Все js скрипты которые идут по запросам страницы пересмотрел, не пойму в котором передается значение Safety Score.
смог выцепить только - {
"id":"thena-hay-busd",
"name":"HAY-BUSD sLP",
"token":"HAY-BUSDsLP",
"tokenAddress":"0x93B32a8dfE10e9196403dd111974E325219aec24",
"tokenDecimals":18,
"tokenProviderId":"thena",
"earnedToken":"mooThenaHAY-BUSD",
"earnedTokenAddress":"0xe47E724c0b4EE9fbC16097AC103b97dc6642fd18",
"earnContractAddress":"0xe47E724c0b4EE9fbC16097AC103b97dc6642fd18",
"oracle":"lps",
"oracleId":"thena-hay-busd",
"status":"active",
"platformId":"thena",
"assets":["HAY","BUSD"],
"strategyTypeId":"lp",
"risks":["COMPLEXITY_LOW","BATTLE_TESTED","IL_NONE","MCAP_SMALL","CONTRACTS_VERIFIED"],
"addLiquidityUrl":"https://thena.fi/liquidity",
"buyTokenUrl":"https://thena.fi/swap",
"network":"bsc",
"createdAt":1673783906}
быть может оно рассчитывается в скриптах не явно какой-то математической операцией
Captain Maslori
Captain Maslori
Captain Maslori
и работаем
Captain Maslori
(на будущее)
Captain Maslori
calcRisk не оч короткий скидывать смысла не вижу
Aleks
Alex
Всем привет, подскажите как правильно сделать, как только не пробовал не получается.
Надо что бы проходило по первому массиву брало дату без времени и если такой даты нету во втором массиве записало данные во второй массив
Alex
let array1 = [{ Date: "2022-01-01 20:10:10", value1: 100 }, { Date: "2022-01-02 20:10:10", value1: 200 }, { Date: "2022-01-03 20:10:10", value1: 300 }, { Date: "2022-01-06 20:10:10", value1: 300 }];
let array2 = [{ date: "2022-01-01 10:10:10", value2: "baz" }, { date: "2022-01-03 10:10:10", value2: "qux" }];
array1.forEach(function (item, index) {
let date = new Date(item.Date).toISOString().split('T')[0]
//При условии что такой даты в массиве нету добавить такую запись
dataSales.push ({Date:element.Date, CoutSell: 0})
})
Captain Maslori
const [date] = filter
if !date и тд
Captain Maslori
filter это метод там вызвать надо на массиве дат
Captain Maslori
А вообще это надо в словари преобразовать
Captain Maslori
И проверку тогда можно делать через оператор in
Alex
спасибо, попробую
Karen
Здравствуйте! У меня такой selector, но его не может найти, но на сайте такой selector есть
Karen
Как исправить? Вроде арабский язык
'#מספר\ מזהה\ צפוי'
Devos
Здравствуйте нужен userscript или скрипт для расширения puppeteer ide для запуска из браузера под автоматизацию некоторых действий в бк:
При запуске скрипт переходит в раздел https://betwinner.com/ru/live/fifa
Далее нажимает на "Показать события только с трансляцией"
Далее скрипт раскрывает и закрывает все лиги где в названии нет х5 х4 х3 Пенальти,при этом чекает время
Если время от 33 до 38 минут то он делает ставку по формиле ниже на 1й тайм
Если время от 75 до 85 то делает ставку на весь матч
Бюджет: не более 80$
Devos
Devos
Karen
Captain Maslori
User
Как ожидать изменение класса кнопки и после этого нажать на неё?
Начальное состояние кнопки (не активна):
<button d-1="" type="button" class="fr-btn mx-2 disabled fr-btn--secondary fr-icon-check-line fr-btn--icon-left accept">
To confirm
</button>
Кнопка активна, нужно нажать (меняется класс):
<button d-1="" type="button" class="fr-btn mx-2 fr-btn--primary fr-icon-check-line fr-btn--icon-left accept">
To confirm
</button>
Captain Maslori
Captain Maslori
Если конечно он сработает... Ну должен наверное)
Captain Maslori
Если нет, ещё есть пара путей но лучше так