Получение Json с сайта

104
22 ноября 2019, 06:40

Как получить Json не логинясь на сайт? Если есть куки при переходе по ссылке сайт выплевывает JSON https://www.fastgraphs.com/cgi-bin/data.xfds.pl?ticker=NYS:MCD&epscode=fcflps

Но при попытке зайти без них сайт выдает пустой массив {} Можно ли дописать что то в адресную строку чтобы он выдал ответ как с cookie?

Answer 1

Я знаю как такое реализовать с помощью PHP CURL

1) если у Вас есть файл cookie готовый и он не требует модификации то это легко

2) если файл куки требует модификации то это уже гимморой !!! но всё ещё возможен для PHP CURL

Для первого варианта))

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'Адрес страницы');    
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'Полный путь к вашему cookie файлу');
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'Полный путь к вашему cookie файлу');
    // Тут косим под браузер ( изучив заголовки отправления )
    $header = array();
    $header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,* /*;q=0.8";
    $header[] = "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3";
    $header[] = "Connection: keep-alive";
    $header[] = "DNT: 1";
    $header[] = "Host: Хост хозяина к которому идём"; // ВАЖНО
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_HEADER, false);
    // Пишем типа наш браузер
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30");
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    // Пишем с какой страницы пришли !!! Бывает важно если ведётся статистика которая всё нам обломает ( идеально чтоб рефферер был правдивый )
    curl_setopt($ch, CURLOPT_REFERER,'http:// с какой страницы я делаю запрос');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    // Пофигу HTTP это или HTTPS
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT,10);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    // совершаем HTTP запрос и получаем содержимое ответа в переменную $con ... дальше парсим её и сами формируем данные как нам угодно.
    $con = curl_exec($ch);
    // закрываем соединение
    curl_close($ch);
?>

Для варианта 2 и далее нужно изучать логику и писать бота! Основу я Вам предоставил

READ ALSO
Таблица с датой на JavaScript

Таблица с датой на JavaScript

Как сделать так, чтобы таблица не рисовалась каждую секунду, а изменлись значения в ней?

136
Перенести данные из одной таблицы в другую

Перенести данные из одной таблицы в другую

Есть две таблицы, в обеих id_product - соответствует номеру товара

143
Появились лишние слайды

Появились лишние слайды

Использую слайдер lightSlider и одновременно magnific-popup(что бы картинка открывалась в модальном окне)И произошла такая проблема, добавил всего два...

138
NodeJS Вернуть данные из БД по клику

NodeJS Вернуть данные из БД по клику

Скрывать не буду, NodeJS для меня темный лесЕсть тестовая база с телефонами в MYSQL

163