Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как получить данные с саита?
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Как получить данные с саита?

Страниц (1): [1]
 

1. ajlhimik - 14 Января, 2015 - 17:39:02 - перейти к сообщению
вот есть страница всех результатов: http://lottery[dot]com[dot]ua/ru/lottery[dot][dot][dot]keno/results[dot]htm
мне надо получит все выиграшные номера в текстовом виде за последние 100 дней (к примеру с розыгрыша 4926 по 5026). Возможно ли ето? Заранее спасибо!
2. Zuldek - 14 Января, 2015 - 18:10:16 - перейти к сообщению
$page = file_get_contents('http://lottery[dot]com[dot]ua/ru/lottery[dot][dot][dot]keno/results[dot]htm');
echo $page;
3. GoDr - 15 Января, 2015 - 10:03:57 - перейти к сообщению
Zuldek, Не всё так просто.. Данные формируются через Javascript. И ещё просмотр результатов осуществляется через Ajax. Так что просто скопировав страницу, ничего не получишь.

А запрашивать в своём скрипте (не через клиента) сторонний скрипт... не думаю что должно получится. По крайней мере нормальный код такое бы запретил..
4. Zuldek - 15 Января, 2015 - 13:14:22 - перейти к сообщению
GoDr пишет:
А запрашивать в своём скрипте (не через клиента) сторонний скрипт... не думаю что должно получится. По крайней мере нормальный код такое бы запретил..

phantom.js к вашим услугам
5. GoDr - 15 Января, 2015 - 13:33:25 - перейти к сообщению
Zuldek, ну или как-то так Радость
6. ajlhimik - 19 Января, 2015 - 16:07:27 - перейти к сообщению
GoDr пишет:
Zuldek, ну или как-то так Радость

а как букмекерские конторы их получяют?
7. LIME - 19 Января, 2015 - 16:11:53 - перейти к сообщению
через API
8. ajlhimik - 19 Января, 2015 - 16:32:03 - перейти к сообщению
LIME пишет:
через API

ето что?)
9. LIME - 19 Января, 2015 - 16:35:24 - перейти к сообщению
енто они договорились и отдают им данные в удобоваримом виде
10. ajlhimik - 19 Января, 2015 - 16:43:59 - перейти к сообщению
LIME пишет:
енто они договорились и отдают им данные в удобоваримом виде

а можно как нибудь удаленно получить только цифры
11. GoDr - 19 Января, 2015 - 18:49:46 - перейти к сообщению
ajlhimik, если сайт отдаёт то можно.. А вообще попробуй написать на сайт ну или позвонить, да спроси... Вдруг там у них есть что-то типа API
12. armancho7777777 - 19 Января, 2015 - 19:10:02 - перейти к сообщению
GoDr пишет:
просмотр результатов осуществляется через Ajax

И? В чём проблема? Тот же http запрос.
Смотрим в файрбаге запрос, его метод, и данные, которые отсылаются.
Запрашивать курлом.
Возможно надо будет отправить заголовок "http_x_requested_with".

Там ожидается post-запрос со следующими данными:
draw: 5031 // № розыгрыша...
action: show_results_keno
module: lottery
is_ajax: true


URL запроса:
_http://lottery.com.ua/index.php

Если нужна сортировать шарики по номерам, то укажите ещё "Need_sort:1"

Список номеров розыгрышей есть в исходном коде страницы в виде JS объекта "DateJSON"
PHP:
скопировать код в буфер обмена
  1. $content = file_get_contents('http://lottery.com.ua/ru/lottery/keno/results.htm');
  2. $drawList = array();
  3.  
  4. if(preg_match('/var\s+DateJSON\s*=\s*([^;]+)\s*;/', $content, $match)) {
  5.     $drawList = json_decode($match[1], true);
  6. }
  7.  
  8. // Номера розыгрышей за 01/01/2015
  9. print_r($drawList[2015][1][1]);
13. GoDr - 20 Января, 2015 - 09:21:13 - перейти к сообщению
armancho7777777 пишет:
Возможно надо будет отправить заголовок "http_x_requested_with".
Тогда возможно нужно будет ещё подменить HTTP_REFERER
14. armancho7777777 - 20 Января, 2015 - 14:54:05 - перейти к сообщению
Не проблема.
Это всего лишь заголовки.

 

Powered by ExBB FM 1.0 RC1