Как получить данные с внешней веб-страницы с помощью curl через POST-запросы - PullRequest
0 голосов
/ 09 октября 2018

Я ранее создал код, который позволяет мне сделать запрос на внешнюю веб-страницу, где я отправил GET идентификатор, и он показывает мне имя и фамилию человека.Этот код работает очень хорошо, это:

      function nome($id)

        {

        $url = 'https://www.dateas.com/es/consulta_cuit_cuil?name=&cuit='.$id;



        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER,array("Accept-Lenguage: es-es,es"));
        curl_setopt($ch, CURLOPT_TIMEOUT,10);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        $html = curl_exec($ch);
        $error = curl_error($ch);
        curl_close($ch);

         preg_match_all('/<tr class="odd"><td><a href="(.*?)">/',$html ,$matches);

         if (count($matches[1]) == 0) 
         {
            $result = "Error in the server";
         }
         else if(count($matches[1]) == 1)
         {
            $result = $matches[1][0];
            $result = str_replace('/es/persona/','', $result);
            $result = substr($result, 0,-12);
            $result = str_replace('-', ' ', $result);
            $result = ucwords($result);
         }
        return $result; 
            }

    $Name = nome($_GET['id']);
    echo "<br><br>The name of the person is : ". $Name;

Этот код работает хорошо, но теперь мне нужно извлечь эту информацию с другого сайта, но для этого я должен сначала войти на этой веб-странице, а затем перейтив разделе запроса и введите идентификатор, нажмите на кнопку поиска, а затем страница возвращает информацию о человеке.Веб-сайт делает запросы не GET, а POST для поиска и отображения информации о человеке.

Моя проблема в том, что я не знаю, как извлечь информацию на этой новой странице, потому что я должен сначала войтиа затем найдите человека, который вводит свой идентификатор, но запросы обрабатываются POST.

Как я могу получить информацию о человеке, делающем запрос, с помощью CURL или любого другого метода PHP?

это страница, где находится форма входа в систему для входа в Интернет, где выполняется запрос: http://buscardatos.com/Socios/ingresso.php

После входа в систему, мы должны перейти к: http://www.buscardatos.com/Personas/DNI

есть текстовое поле, в котором вводится идентификатор и нажав на кнопку поиска информацию о человеке

веб-сайт делает запрос по почте.Я пытался использовать тот же код, который я показал здесь, но он выдает ошибку «страница не найдена».

Не могли бы вы помочь мне с кодом или информацией о том, как решить эту проблему?

1 Ответ

0 голосов
/ 09 октября 2018

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

Во-первых, вам нужноиспользуйте браузер, чтобы завершить процесс входа в систему и запроса, и затем вы сможете четко увидеть информацию о данных http / https, которую браузер взаимодействует с сервером.

Далее вам необходимо использовать код PHP для симуляции браузера.отправьте регистрационную информацию, например, сервер, а затем получите данные, возвращенные сервером (эти данные могут быть значением сеанса, обычно хранятся локально в файле cookie браузера).

Далее вы можете использовать CURL, указанный выше, чтобы получитьданные.Не забудьте принести данные, необходимые для проверки сервера.Если это файл cookie, возможно, вы можете добавить его следующим образом:

curl_setopt($ch,CURLOPT_COOKIE,'cookie= XXXX ; cookie_type= YYYY;');

Пока вы предоставляете правильные данные и URL, вы можете получать нужные данные.

...