Все вопросы касающиеся использования
программы можно задать здесь
-
Zerkalo
- Сообщения: 6
- Зарегистрирован: 06 окт 2021, 15:10
Сообщение
Zerkalo » 06 окт 2021, 15:18
Вопрос по
$browser->run_java_script
Да, вот такой код возвращает результат выполнения JavaScript в броузере:
Код: Выделить всё
echo $browser->run_java_script("navigator.appName")."<br>";
Но как вернуть массив?
=== Дополнено. ====
Разобрался. Возвращает эта функция строку. Значит надо внутри JavaScript создать массив и вернуть строку с помощью JSON.stringify.
Отсюда следующий вопрос: есть ли какие-то ограничение на возвращаемую строку? Ну, например, строка не должна быть более 4096 байт, или время отдачи строки не более 10 секунд?
-
bigfozzy
- Site Admin
- Сообщения: 3048
- Зарегистрирован: 28 июл 2008, 17:24
-
Контактная информация:
Сообщение
bigfozzy » 06 окт 2021, 16:54
echo $browser->run_java_script("JSON.stringify(navigator.languages)")."<br>";
ограничений нет - если что возникнет - пишите - решим.
-
Zerkalo
- Сообщения: 6
- Зарегистрирован: 06 окт 2021, 15:10
Сообщение
Zerkalo » 06 окт 2021, 17:06
И я так понял, что с Sock5 с авторизацией Хуман не работает. С авторизацией через HTTS прокси - пошло.
И не получается работать с Sock5 через Proxifier - это нормальная ситуация или я что-то упустил?
-
bigfozzy
- Site Admin
- Сообщения: 3048
- Зарегистрирован: 28 июл 2008, 17:24
-
Контактная информация:
Сообщение
bigfozzy » 06 окт 2021, 18:42
Socks с авторизацией работает для всех моделей браузера, кроме встроенного FF
$browser->enable_proxy("","socks5://x.x.x.x:xx;xxx;xxx");
$browser->enable_proxy("","socks4://x.x.x.x:xx;xxx;xxx");
$browser->enable_proxy("","socks://x.x.x.x:xx;xxx;xxx");
если не работает - разрешите хуману в брендмауэре порты использовать, он поднимает свой сокс прокси и работает через него
-
Zerkalo
- Сообщения: 6
- Зарегистрирован: 06 окт 2021, 15:10
Сообщение
Zerkalo » 06 окт 2021, 19:55
Есть проблема несоответствия...
В Chrome от Гугла
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36
В Opere
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 OPR/79.0.4143.72 (Edition Yx 05)
Значение navigator.webdriver выдаёт false
А вот в вашем встроенном браузере
Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36
Значение navigator.webdriver выдаёт undefined
Что для всяких мудрёных счётчиков и антифрод систем признак того, что браузер не совсем тот, за кого он себя выдаёт.
В последних версиях броузеров этот параметр выставляется в ReadOnly со значением либо false, либо true - если запущен под webdriver
Но тут надо предусмотреть конечно navigator.webdriver под undefined для User Agent, в которых этого параметра не было.
Возможно настройку добавить в настройки броузера...
-
bigfozzy
- Site Admin
- Сообщения: 3048
- Зарегистрирован: 28 июл 2008, 17:24
-
Контактная информация:
Сообщение
bigfozzy » 06 окт 2021, 21:39
Спасибо, исправили и обновили
-
bigfozzy
- Site Admin
- Сообщения: 3048
- Зарегистрирован: 28 июл 2008, 17:24
-
Контактная информация:
Сообщение
bigfozzy » 07 окт 2021, 21:12
Вернули обратно - с этим не проходит авторизацию в гугле.
Если надо изменить - воспользуйтесь:
$js ="Object.defineProperty(Object.getPrototypeOf(navigator), 'webdriver', { get: () => false });";
$browser->set_init_java_script($js);