PHP
7
Вклад в тег
PhpQuery
/**
* Функция для прасинга с авторизацией
* @param $url - ссылка на сайт
* @param $post - POST запрос для авторизации
* @param string $pattern - шаблон для регулярки
* @param string $url_page - ссылка куда нужно перейти после авторизации в кабинете, если нужное нам значение нет на главной ( не обязательное поле)
* @param string $referer - реферер откуда пришли (необязательное поле)
* @return mixed|string
*/
function curl_get($url, $post, $pattern = "", $url_page = '', $referer = 'https://google.com'){
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "/lead.txt"); // Куда записывать куки
curl_setopt($ch, CURLOPT_COOKIEJAR, str_replace("\\", "/", getcwd()).'/lead.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_ENCODING , "gzip");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
curl_setopt($ch, CURLOPT_REFERER, $referer); // Говорим откуда пришли REFERER
curl_setopt($ch, CURLOPT_URL, $url); // Переходим по нашему URLу
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Отправляем наши POST данные
$sess_cookie=substr($data, strpos($data, "PHPSESSID=")+10, 32);
curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie);
$data = curl_exec($ch);
//Если после авторизации нужно перейти на определенную страницу проверяем нужно ли перейти или нет
if($url_page != ''){
curl_setopt($ch, CURLOPT_URL, $url_page);
$data = curl_exec($ch);
}
//Извлекаем баланс
$document = phpQuery::newDocument($data);
$str = $document;
preg_match_all($pattern, $str, $arr);
$data = implode(”, $arr[1]);
curl_close($ch);
phpQuery::unloadDocuments($document);
return $data;
}
/**
* Парсим баланс
*/
$referer = 'https://site.pro';
$post = "mail=test%40gmail.com&pass=testtest"; // POST запрос при авторизации
$pattern = "#<b>(.+?)</b>#is"; // Шаблон для регулярки чтобы выбрать нужное значение
$balance = curl_get('https://auth.site.pro/login', $post, $pattern); // используем функцию
echo $balance; // Выводим на экран
json_decode()
$inputJSON = file_get_contents('php://input');
$input= json_decode( $inputJSON, TRUE );
print_r(json_encode($input));