• Как контролировать лимит?

    @Us59 Автор вопроса
    Сергей Горностаев, спустя 3 часа мозг уже закипел и я не могу понять до сих пор.
    Если у нас есть дата и время в таблице вот такого вида: 13.06.2019 13:55:00.
    если я сделаю что-то вроде этого:
    SELECT * FROM `proxy` WHERE `VerifyDateTime` < CURRENT_DATE() + INTERVAL 1390 MINUTE то условие сработает в любой момент, даже если время будет больше на 1 секунду, а мне нужно чтобы оно срабатывало только если время 23:00 или больше, но не меньше (например опять же).
  • Как контролировать лимит?

    @Us59 Автор вопроса
    Сергей Горностаев, не могу сообразить как это сработает, сидел рисовал на листке 2 часа уже, не могу понять.

    Например в таблице есть запись такого вида:
    site | proxy         | when
     1   | 157.666.55.21 | 13.06.2019 13:55:00


    Я не совсем понимаю как работает now()::date именно непонятен момент ::date.
    NOW() получает текущую дату и время. если мы делаем ::date - он выдает только дату чтоли?! Я попробовал сделать запись в свою БД такого вида: now()::date мне выдало ошибку, мол так нельзя.

    Я не понимаю каким образом мы можем сравнить дату и время которое когда-то записали например - 13.06.2019 13:55:00 с текущим временем, точнее чтобы условие выполнилось только когда текущее время будет 02:00 (например), т.е. чтобы условие не выполнялось в 01:00, а только в 02:00 или больше.
  • Как контролировать лимит?

    @Us59 Автор вопроса
    Константин Цветков , я думаю что сайты, которые установили этот лимит обновляют его в 00:00 ну или в какое-то время, а не записывают каждый IP и время его запросов, скорее всего все лимиты снимаются в 1 момент для всех, а при такой схеме мы будем отсчитывать ровно 24 часа с момента запросов, хотя лимита уже не будет...
    При этом, сайт 1 может сбросить лимит в 05:00,а сайт 2 в 12:00 к примеру.

    Поэтому я думаю вариант от Сергея не очень подходит мне, или я не понимаю как я могу использовать это.
  • Как контролировать лимит?

    @Us59 Автор вопроса
    Сергей Горностаев, я думаю что сайты, которые установили этот лимит обновляют его в 00:00 ну или в какое-то время, а не записывают каждый IP и время его запросов, скорее всего все лимиты снимаются в 1 момент для всех, а при такой схеме мы будем отсчитывать ровно 24 часа с момента запросов, хотя лимита уже не будет...
    При этом, сайт 1 может сбросить лимит в 05:00,а сайт 2 в 12:00 к примеру.
  • Как контролировать лимит?

    @Us59 Автор вопроса
    Сергей Горностаев, получается, я сделаю такую таблицу, сам список IP хранится в другой таблице, в выборке IP я сделаю условие, чтобы он выбирал IP и подсчитывал, что этот IP не использовался больше чем N количество раз в таблице request_log + задавая условие, чтобы проверялось время?
    Я правильно понял вашу идею реализации?)

    Сразу назревает вопрос, как сделать такое условие в SQL.. (с моментом подсчета количества из таблицы request_log)

    Вот мой запрос на текущий момент (достаточно много условий выборки как помне):
    SELECT A.Id, A.ServiceId, B.Ip, B.Port, B.UserAgent FROM orders A, proxy B WHERE A.CaptchaRequest =:id AND A.StatusId = '5' AND B.IpCountry = 'RU' AND B.Used = '0' AND B.StatusProxy = '1' AND B.QtyVerifyTime = '0' AND B.QtyUsedTime < 10 ORDER BY NOW() - B.VerifyDateTime LIMIT 1
  • Как контролировать лимит?

    @Us59 Автор вопроса
    и как это будет работать? При выборе IP адреса я делаю запрос к БД и выбираю рандомный proxy подходящий по параметрам (чтобы было не более N запросов с этого IP к сайту 2)

    Вы предлагаете делать 2 запроса при выборе IP адреса, к одной таблице, а потом еще к другой, чтобы подсчитать сколько раз этот IP использовался для запроса? Также, не совсем понятно как в таком случае сбрасывать лимит использования в течении 24 часов?
  • Как контролировать лимит?

    @Us59 Автор вопроса
    Сергей Горностаев, к какой тогда теме отнести такой вопрос?
  • Что нужно установить для старта Selenium на ubuntu?

    @Us59 Автор вопроса
    SlavikF да, у меня нету desktop на сервере, его я думаю можно установить, но по сути оно мне не нужно, лишняя нагрузка.

    Получается, мне нужно использовать Chrome Headless.

    Если я выбираю Chrome Headless, какой будет мой список для установки?)
    1. Библиотека php-webdriver
    2. Chrome Headless. - это вместо обычного браузера устанавливать мне нужно получается?
    3.
    4.
    5.
    ...
  • Как Google узнает Mac-адрес компьютера?

    @Us59
    Veritas23, можете на почту написать мне?) Есть пару вопросов касательно сего дела
    spoiler
    s811645@gmail.com
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    A N, проблема в том, что iframe генерируется js скриптами, и когда я вывожу var_dump в браузере он успешно генерируется, а если я просто сохраняю html результат в файл, то мы не видим iframe потому что его не сгенерировали js скрипты, и чтобы он появился нужно выполнять javascripts и потом уже вытаскивать iframe src.
    Этот вопрос обсуждаю уже тут
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    A N, Как их использовать, если loadHTML не загружает html... и при обращении к атрибутам он просто выдает, мол вы обращаетесь к пустоте..
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    A N, я взял онлайн php создал переменную $html =' сюда засунул большой кусок html и script кода';
    $html = preg_replace("'<script[^>]*?>.*?</script>'si","", $result);

    var_dump($text);
    и вижу нужный html.

    По факту в скрипте получаю через curl запрос данные html также делаю preg_replace и далее..:
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    var_dump($dom);

    и вар dump выводит мне фигню вот эту:
    spoiler
    object(DOMDocument)#3 (34) {
      ["doctype"]=>
      string(22) "(object value omitted)"
      ["implementation"]=>
      string(22) "(object value omitted)"
      ["documentElement"]=>
      string(22) "(object value omitted)"
      ["actualEncoding"]=>
      string(5) "utf-8"
      ["encoding"]=>
      string(5) "utf-8"
      ["xmlEncoding"]=>
      string(5) "utf-8"
      ["standalone"]=>
      bool(true)
      ["xmlStandalone"]=>
      bool(true)
      ["version"]=>
      NULL
      ["xmlVersion"]=>
      NULL
      ["strictErrorChecking"]=>
      bool(true)
      ["documentURI"]=>
      NULL
      ["config"]=>
      NULL
      ["formatOutput"]=>
      bool(false)
      ["validateOnParse"]=>
      bool(false)
      ["resolveExternals"]=>
      bool(false)
      ["preserveWhiteSpace"]=>
      bool(true)
      ["recover"]=>
      bool(false)
      ["substituteEntities"]=>
      bool(false)
      ["nodeName"]=>
      string(9) "#document"
      ["nodeValue"]=>
      NULL
      ["nodeType"]=>
      int(13)
      ["parentNode"]=>
      NULL
      ["childNodes"]=>
      string(22) "(object value omitted)"
      ["firstChild"]=>
      string(22) "(object value omitted)"
      ["lastChild"]=>
      string(22) "(object value omitted)"
      ["previousSibling"]=>
      NULL
      ["attributes"]=>
      NULL
      ["ownerDocument"]=>
      NULL
      ["namespaceURI"]=>
      NULL
      ["prefix"]=>
      string(0) ""
      ["localName"]=>
      NULL
      ["baseURI"]=>
      NULL
      ["textContent"]=>
      string(984) "Sign In
    
    
        
        
        
        
            
        
        
            
            
                
            
            
                
            
            
        
    
        
        
        
        
            
        
        
        
        
    
    
    
    	
    	
    
        
    
    
    
        
    
    
            @media only screen and (min-device-width: 481px) {
                .wrapper {
                    margin-bottom: -66px;
                    padding-bottom: 66px;
                }
            }
    
            @media only screen and (max-device-width: 480px) {
                .wrapper {
                    margin-bottom: -122px;
                    padding-bottom: 122px;
                }
            }
        
            
                    
    
    
    
    
                
                
                    
    
                    
                        
                            Privacy Policy
                        
                        
                            Terms of Use
                        
                        
                    
                
            
    "
    }
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    A N, loadHTML просто нив какую не грузит html теги, даже в самом начале которые.
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    A N, была мысль удалить через preg_replace, но удаляется ВСЕ содержимое. т.е в начале есть script и в конце. он берет script начальный и удаляет все до самого конца. включая html.
    Пример:
    <div>
    какой то текст
    </div>
    <script>Код JS</script>
    <div>
    какой то текст
    </div>
    <div>
    какой то текст
    </div>
    <div>
    какой то текст
    </div>
    <script>Код JS</script>

    Т.е он удаляет все средние div.
    Видимо, мне нужен правильный preg_replace который удалит только внутренности script и циклом очистит все scripts.
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    A N, и что это дает? Отключает предупреждения и ошибки? Ну не знаю, вставил ваш код, как показывало предупреждения так и показывает.
    $dom = new DOMDocument();
    $dom->loadHTML($result, LIBXML_NOWARNING | LIBXML_NOERROR);
    var_dump($dom);


    вар дамп не отображает html текста, только js как я понимаю.
    5cf509e2e4242023828679.png
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    A N, в итоге все равно неясно, они предлагают отключить ошибки? - Не помогает.

    А как обрабатывать - я не нашел примеров никаких, только
    if (!$doc->load('file.xml')) {
        foreach (libxml_get_errors() as $error) {
            // обработка ошибок здесь
        }
    
        libxml_clear_errors();
    }

    обработка ошибок здесь.. как? примеров не нашел.

    Вот одна из ошибок которая возникает насколько я понимаю:
    5cf4f5eb7a3f7854438728.png
    И как я ее могу исправить?
  • Как получить Iframe с DOMDocument?

    @Us59 Автор вопроса
    В онлайн инструментах, когда я загружаю html теги ручками и удаляю script все вот такое работает:
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    $xpath = new DOMXpath($dom);
    foreach($xpath->query('//iframe') as $iframe) {
        echo $iframe->getAttribute('src');
    }

    На практике в моем скрипте - нет, по всей видимости неправильно загружается html в $dom->loadHTML($html);
    Возможно его нужно обрабатывать как-то перед добавлением? Скорее всего не нравится что я загружаю туда еще скрипты помимо html...
  • Как делать запись html текста в БД?

    @Us59 Автор вопроса
    Denis, тема не дубль, вопрос в ней в основном касательно того, как мне сформировать переменную для передачи в ф-цию)
  • Как передать параметры в IN?

    @Us59 Автор вопроса
    FanatPHP, вот, теперь немного понятней стало.