Задать вопрос
  • Как установить последнюю версию curl?

    @Zimaell Автор вопроса
    Ubuntu 17.04 \n \l
    Ubuntu 16.04.6 LTS \n \l
    Да разные, а как теперь быть если на втором curl работает не так же само?
  • Как установить последнюю версию curl?

    @Zimaell Автор вопроса
    Linux 127.0.0.1localhost 4.10.0-42-generic #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC                                                                                                  2017 x86_64 x86_64 x86_64 GNU/Linux

    Linux Ubuntu-1604-xenial-64-minimal 4.15.0-64-generic #73~16.04.1-Ubuntu SMP Fri Sep 13 09:56:18 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

    Первый это виртуальный а второй выделенный
  • Как установить последнюю версию curl?

    @Zimaell Автор вопроса
    Сделал, но версию ту же самую показывает...
  • Почему http_code дает ответ 0 curl?

    @Zimaell Автор вопроса
    вот проверил без таймаута, запрос выполнялся 130 секунд но ответы 200 на рабочих выдало, на нерабочих ответ 0, это как бы долговато, да и на другом сервере за 10 секунд выдает 200 ответ на рабочих, может где-то какие-то настройки нужно поправить?
  • Как проверить нажата ли кнопка в puppeteer?

    @Zimaell Автор вопроса
    Максим Федоров, если условие if($page->querySelector('[id=button]') выполняется значит элемент есть, если бы он был "невидимым" то при клике была бы ошибка, а так и условие выполняется и функция клика выполняется и элемент виден но при этом реального клика не происходит, точнее не всегда происходит, так как то выполняется сразу то с нескольких нажатий...
  • Почему curl_getinfo не выдает content_type и http_code?

    @Zimaell Автор вопроса
    Enj0y, а как мне нужно настроить мой фаервол правильно чтобы не блокировало?
    Ведь если на другом точно те же прокси на тот же сайт работают то проблема у меня на сервере...
  • Почему curl_getinfo не выдает content_type и http_code?

    @Zimaell Автор вопроса
    Евгений, в смысле фаервол не пропускает или как?
    как тогда настроить чтобы пропускал если фаервол?
  • Почему curl_getinfo не выдает content_type и http_code?

    @Zimaell Автор вопроса
    в смысле?
    только что проверил без использования прокси, так работает, с прокси 0, в чём тогда может дело и где что проверить настроить?
  • Почему curl_getinfo не выдает content_type и http_code?

    @Zimaell Автор вопроса
    тоже самое, да и на первом сервере же работает точно такой же код...
  • Как проверить визуальность блока в puphpeteer?

    @Zimaell Автор вопроса
    waitForSelector на сколько я понимаю то это "ожидать n секунд определённого селектора", мне же уже нужно к моменту нажатия уже знать можно ли нажать, данный селектор может быть, может не быть, может быть но невидим...
    По вашему код на php должен примерно так выглядеть
    if($page->waitForSelector('[id=some-button]', array('visible'=>true))) ....

    просто на данный момент нет возможности это протестировать...
    а на счёт
    Просто не пойму, сколько вам еще нужно раз наступить на грабли этой пхп обертки, чтобы начать использовать puppeteer. 99% проблем отпадают на этапе чтения документации.

    У меня куча кода уже написано и работает под php, смысл мне все переписывать и перенастраивать когда мне нужно одну строчку заменить...
  • Как кликнуть по radio puppeteer?

    @Zimaell Автор вопроса
    Стоп, что-то я уже затормозил капитально, дальше ведь у меня по ходу кода в одном из скриптов есть
    $page->click('[name=test][value=test_1]');
    И там оно работает, разница как я посмотрел в самих значениях, там где работает значение простое, типа value="test_value_1", там где у меня не работает значение типа value="/test/dp/select?test=1&test=2"
    то есть дело в самом значении, может символы какие дают этот сбой, что-то я упускаю....
  • Как кликнуть по radio puppeteer?

    @Zimaell Автор вопроса
    Кирилл Горелов, так а смысл? если у радио несколько вариантов то какой из них он выберет...

    kruslan, я не пойму что от меня требуется, получить из document.querySelector(...) нужные значения которые я потом буду использовать при клике?

    Если так $page->querySelector("[name=test]") я не получаю содержимое то тогда как его получить?
    Я немного логики действий не пойму...
    Я конечно погуглю, но пока что не пойму последовательность действия для того чтобы кликнуть, все остальные действия (клик, селект, ввод и тд) вроде выполняются элементарно, а тут...
  • Как кликнуть по radio puppeteer?

    @Zimaell Автор вопроса
    kruslan, вот посмотрел что содержит
    var_dump($page->querySelector("[name=test]"));

    Содержимое querySelector

    object(Nesk\Puphpeteer\Resources\ElementHandle)#17 (3) {
    ["resourceIdentity":protected]=>
    object(Nesk\Rialto\Data\ResourceIdentity)#22 (2) {
    ["className":protected]=>
    string(13) "ElementHandle"
    ["uniqueIdentifier":protected]=>
    string(18) "1567779737027.6233"
    }
    ["processSupervisor":protected]=>
    object(Nesk\Rialto\ProcessSupervisor)#13 (7) {
    ["options":protected]=>
    array(8) {
    ["executable_path"]=>
    string(4) "node"
    ["idle_timeout"]=>
    int(60)
    ["read_timeout"]=>
    int(30)
    ["stop_timeout"]=>
    int(3)
    ["logger"]=>
    NULL
    ["log_node_console"]=>
    bool(false)
    ["debug"]=>
    bool(false)
    ["log_browser_console"]=>
    bool(false)
    }
    ["process":protected]=>
    object(Symfony\Component\Process\Process)#15 (25) {
    ["callback":"Symfony\Component\Process\Process":private]=>
    object(Closure)#16 (3) {
    ["static"]=>
    array(2) {
    ["callback"]=>
    NULL
    ["out"]=>
    string(3) "out"
    }
    ["this"]=>
    *RECURSION*
    ["parameter"]=>
    array(2) {
    ["$type"]=>
    string(10) ""
    ["$data"]=>
    string(10) ""
    }
    }
    ["hasCallback":"Symfony\Component\Process\Process":private]=>
    bool(false)
    ["commandline":"Symfony\Component\Process\Process":private]=>
    array(4) {
    [0]=>
    string(4) "node"
    [1]=>
    string(65) "/var/www/html/node_modules/@nesk/rialto/src/node-process/serve.js"
    [2]=>
    string(71) "/var/www/html/vendor/nesk/puphpeteer/src/PuppeteerConnectionDelegate.js"
    [3]=>
    string(72) "{"idle_timeout":60,"log_node_console":false,"log_browser_console":false}"
    }
    ["cwd":"Symfony\Component\Process\Process":private]=>
    string(21) "/var/www/html/autobuy"
    ["env":"Symfony\Component\Process\Process":private]=>
    NULL
    ["input":"Symfony\Component\Process\Process":private]=>
    NULL
    ["starttime":"Symfony\Component\Process\Process":private]=>
    float(1567779590.1535)
    ["lastOutputTime":"Symfony\Component\Process\Process":private]=>
    float(1567779590.4495)
    ["timeout":"Symfony\Component\Process\Process":private]=>
    float(60)
    ["idleTimeout":"Symfony\Component\Process\Process":private]=>
    NULL
    ["exitcode":"Symfony\Component\Process\Process":private]=>
    NULL
    ["fallbackStatus":"Symfony\Component\Process\Process":private]=>
    array(0) {
    }
    ["processInformation":"Symfony\Component\Process\Process":private]=>
    array(8) {
    ["command"]=>
    string(228) "exec 'node' '/var/www/html/node_modules/@nesk/rialto/src/node-process/serve.js' '/var/www/html/vendor/nesk/puphpeteer/src/PuppeteerConnectionDelegate.js' '{"idle_timeout":60,"log_node_console":false,"log_browser_console":false}'"
    ["pid"]=>
    int(2119)
    ["running"]=>
    bool(true)
    ["signaled"]=>
    bool(false)
    ["stopped"]=>
    bool(false)
    ["exitcode"]=>
    int(-1)
    ["termsig"]=>
    int(0)
    ["stopsig"]=>
    int(0)
    }
    ["outputDisabled":"Symfony\Component\Process\Process":private]=>
    bool(false)
    ["stdout":"Symfony\Component\Process\Process":private]=>
    resource(16) of type (stream)
    ["stderr":"Symfony\Component\Process\Process":private]=>
    resource(18) of type (stream)
    ["process":"Symfony\Component\Process\Process":private]=>
    resource(23) of type (process)
    ["status":"Symfony\Component\Process\Process":private]=>
    string(7) "started"
    ["incrementalOutputOffset":"Symfony\Component\Process\Process":private]=>
    int(6)
    ["incrementalErrorOutputOffset":"Symfony\Component\Process\Process":private]=>
    int(0)
    ["tty":"Symfony\Component\Process\Process":private]=>
    NULL
    ["pty":"Symfony\Component\Process\Process":private]=>
    bool(false)
    ["useFileHandles":"Symfony\Component\Process\Process":private]=>
    bool(false)
    ["processPipes":"Symfony\Component\Process\Process":private]=>
    object(Symfony\Component\Process\Pipes\UnixPipes)#18 (8) {
    ["ttyMode":"Symfony\Component\Process\Pipes\UnixPipes":private]=>
    NULL
    ["ptyMode":"Symfony\Component\Process\Pipes\UnixPipes":private]=>
    bool(false)
    ["haveReadSupport":"Symfony\Component\Process\Pipes\UnixPipes":private]=>
    bool(true)
    ["pipes"]=>
    array(2) {
    [1]=>
    resource(21) of type (stream)
    [2]=>
    resource(22) of type (stream)
    }
    ["inputBuffer":"Symfony\Component\Process\Pipes\AbstractPipes":private]=>
    string(0) ""
    ["input":"Symfony\Component\Process\Pipes\AbstractPipes":private]=>
    NULL
    ["blocked":"Symfony\Component\Process\Pipes\AbstractPipes":private]=>
    bool(false)
    ["lastError":"Symfony\Component\Process\Pipes\AbstractPipes":private]=>
    NULL
    }
    ["latestSignal":"Symfony\Component\Process\Process":private]=>
    NULL
    }
    ["processPid":protected]=>
    int(2119)
    ["delegate":protected]=>
    object(Nesk\Puphpeteer\PuppeteerProcessDelegate)#12 (0) {
    }
    ["client":protected]=>
    object(Socket\Raw\Socket)#19 (1) {
    ["resource":"Socket\Raw\Socket":private]=>
    resource(24) of type (Socket)
    }
    ["serverPort":protected]=>
    int(41150)
    ["logger":protected]=>
    object(Nesk\Rialto\Logger)#14 (1) {
    ["logger":protected]=>
    NULL
    }
    }
    ["catchInstructionErrors":protected]=>
    bool(false)
    }

    Честно ничего не понял, так же не понял как эта информация мне может помочь в данном вопросе...
  • Как кликнуть по radio puppeteer?

    @Zimaell Автор вопроса
    kruslan, все равно не могу понять как должно выглядеть выражение...
  • Почему появляется ошибка Page crashed в puppeteer?

    @Zimaell Автор вопроса
    Дмитрий, а причину можно устранить краха?
    Просто хоть бы знать из-за чего оно вообще, код не меняется, тестирую один и тот же сценарий, на тех же самых страницах....
  • Как кликнуть по radio puppeteer?

    @Zimaell Автор вопроса
    kruslan, неверный селектор? в смысле нет на странице ?
    <input name="test" value="....." ....
    Так есть, и имя и значение, проверяю и сверяю все, так что не так то?
  • Как кликнуть по radio puppeteer?

    @Zimaell Автор вопроса
    Пробовал вот такими способами

    $ck_vl='.......'; // Полученное значение из контента, то что в value="...."
    
    $page->click('[name=test_'.$ck_vl.']');
    
    $page->click('[value="'.$ck_vl.'"] > [name=test]');
    
    $page->click('[name=test][value="'.$ck_vl.'"]');
    
    $page->click('[name=test][value='.$ck_vl.']');

    ни в какую, пишет "No node for selector" , значение перепроверял, все правильно вытягивает.
    Как его установить не пойму...

    вот такая вот ошибка

    Fatal error: Uncaught Nesk\Rialto\Exceptions\Node\FatalException: Evaluation failed: DOMException: Failed to execute 'querySelector' on 'Document': '[name=test][value=.......]' is not a valid selector. at __puppeteer_evaluation_script__:1:33 in /var/www/html/vendor/nesk/rialto/src/ProcessSupervisor.php:307 Stack trace: 
    #0 /var/www/html/vendor/nesk/rialto/src/ProcessSupervisor.php(387): Nesk\Rialto\ProcessSupervisor->checkProcessStatus() 
    #1 /var/www/html/vendor/nesk/rialto/src/Traits/CommunicatesWithProcessSupervisor.php(84): Nesk\Rialto\ProcessSupervisor->executeInstruction(Object(Nesk\Rialto\Instruction)) 
    #2 /var/www/html/vendor/nesk/rialto/src/Traits/Commun in /var/www/html/vendor/nesk/rialto/src/ProcessSupervisor.php on line 307
  • Какие данные может собирать сайт?

    @Zimaell Автор вопроса
    dimonchik2013, да уже как бы, авторизация уже проходит, осталось скрипт с фантома под паппер подкорректировать.
    А на счёт "повышения квалификации - твоя стоимость возрастет", меня это не интересует, мне бизнес и так приносит доход, просто с автоматизацией гораздо проще...
    А там время покажет...
  • Почему на разных сервисах показывает разный user agent puppeteer?

    @Zimaell Автор вопроса
    kruslan, пробовал просто отключить инкогнито и пару раз запустить и результат тот же, думаю дело в куках, я это потестирую.

    По поводу разрешения - я указываю и window-size и viewport но там значение не меняется, но думаю это сейчас не критично так как авторизация то происходит...

    Думаю дело в самом запоминании устройства, и эти данные думаю хранятся в куках, так как если с одного ip заходить разными браузерами то для каждого оно по разу будет требовать подтверждение на почту, на 2й раз уже не требует, думаю эти данные в куках хранятся, в общем потестирую посмотрю какие будут результаты...

    Или паппер у себя где-то куки тоже хранит?
  • Почему на разных сервисах показывает разный user agent puppeteer?

    @Zimaell Автор вопроса
    Ну инкогнито я считал включается так
    $page=$browser->createIncognitoBrowserContext()->newPage();

    Подведу итоги, есть плюсы и новые минусы:
    1.) + Ура залогинился...
    2.) + Затребован код который отсылается на почту, это нормально, у меня под это код написан, код заходит на почту смотрит этот код и вводит его, все класс, авторизация успешна...
    3.) - Этот код требует при каждой авторизации, хотя если заходить через обычный браузер то этот код требует только при первой авторизации, далее больше никогда не спрашивает (максимум при изменении пароля).

    Почему 3е минус, потому что таких писем штук 20 отошлет а далее будет надпись "попробуйте позже", что то типа того.

    Выходит нужно использовать куки, такой код готов (записи и установки кук), но амазон очень часто выкидывает окно авторизации (часто когда нажимаю на заказ или проверить ордера), получается при каждом таком вводе требует подтверждение на почту, которое приходит ограниченное количество раз.

    Вот такие вот пироги, но в целом задача решена, вам kruslan огромнейшее спасибо, примите мою благодарность, вы очень помогли.
    Ну а я буду думать как решить эту уже по меньше проблему, хоть и тоже заноза. Если вы вдруг знаете в чём может быть дело или догадываетесь, то хотелось бы услышать ваши мысли на это счёт.

    Да кстати разрешение уже другое но тоже статическое 1280 x 1024 и не меняется, и время какое-то не то показывает...