как сделать php парсер

<?php
function Parse ($p1,$p2, $p3){
$num1=strpos($p1,$p2);
if ($num1 === false) return 0;
$num2= substr($p1, $num1);
return strip_tags (substr($num2,0, strpos($num2, $p3)));

}

$String= file_get_contents('https://www.pexpay.com/ru/trade/buy?fiat=RUB&payment=%D0%A1%D0%91%D0%95%D0%A0%D0%91%D0%90%D0%9D%D0%9A');


echo Parse($String, '<div class="css-1kj0ifu">', '</div>');


?>

Как спарсить курсы(цены) со страницы https://www.pexpay.com/ru/trade/buy?fiat=RUB&payment=%D0%A1%D0%91%D0%95%D0%A0%D0%91%D0%90%D0%9D%D0%9A ?


Ответы (1 шт):

Автор решения: stylok
  1. Первым делом открываем консоль браузера.
  2. Идём в закладку с сетевыми запросами и в момент вызова страницы и переходов по ссылкам пагинатора ищем нужные нам ответы. Упс.) Оказывается, что они находятся не HTML-формате, а в прекрасном и более удобном для парсинга JSON, да и правильная ссылка совсем другая.
  3. После чего, глядя на сам запрос с так необходимыми вам ответами, пытаемся его эмулировать в Postman В вашем случае видим, что это POST-запрос, с "телом" json.

И, вуаля — как-то так:

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://www.pexpay.com/bapi/c2c/v1/friendly/c2c/ad/search',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS =>'{
        asset: "USDT",
        classifies: [],
        fiat: "RUB",
        filter: {
            payTypes: []
        },
        payTypes: [],
        page: 6,
        payTypes: [],
        rows: 10,
        tradeType: "BUY"
    }',
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json'
        ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

А дальше сами...

→ Ссылка