Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Парсинг рамблер кассы (https://javascript.ru/forum/misc/37900-parsing-rambler-kassy.html)

Sub-zerro 13.05.2013 12:32

Парсинг рамблер кассы
 
Подскажите пожалуйста, возможно ли распарсить http://kassa.rambler.ru/? - рамблер касса - заполнение залов кинотеатра (кол-во купленных/забронированных билетов).
Каким образом можно реализовать парсер?
Суть в том, что данные появляются в результате выполнения яваскрипта.
Видимо только на пхп это невозможно сделать?
К слову, это не воровство - воровать там нечего, парсер нужен для проверки кинотеатров на соотвествие кол-ва проданных билетов для кинопрокатчика.

dmitriymar 13.05.2013 12:43

Цитата:

Сообщение от Sub-zerro
Видимо только на пхп это невозможно сделать?

нет конечно
поинтересуйтесь, возможно у них есть апи для подобного.
а писать парсер -возможно (а так скорее всего и есть) у них стоят защиты от парсинга, таже на количество запросов от одно ip в ед времени, не говоря о других

qwerty-клавиатура 13.05.2013 19:00

а что не получается? сервер ответ не возвращает? такое часто бывает если нужные заголовки не отправить

$headers = getallheaders();
$headers['Host'] = $url;
$headers['Cookie'] = '';
// заменяем keep-alive на close, чтобы не ждать закрытия соединения
$headers['Connection'] = 'close';

$header = '';

foreach ($headers as $name => $value) {
$header .= "$name: $value\r\n";
}

$data = file_get_contents( $url, create_context( array( 'http' => array( 'method' => 'GET', 'header' => $header, ) ) ) )

qwerty-клавиатура 13.05.2013 19:01

собс-но мы замаскировались под обычный клиент

qwerty-клавиатура 13.05.2013 19:58



<?php

$headers = getallheaders();
unset( $headers['Host'] );
$headers['Cookie'] = '';
// заменяем keep-alive на close, чтобы не ждать закрытия соединения
$headers['Connection'] = 'close';

$header = '';

foreach ($headers as $name => $value) {
    $header .= "$name: $value\r\n";
}

$data = file_get_contents( $_GET['url'], null, stream_context_create( array( 'http' => array( 'method' => 'GET', 'header' => $header ) ) ) );
header('Content-type: text/plain');
echo($data);

?>

qwerty-клавиатура 13.05.2013 20:04


qwerty-клавиатура 13.05.2013 20:08

$data = json_decode( '{"response": ' . $response . '}' );
var_dump( $data['response'] ); // твои данные, желаю смерти пидарасу который мне минусунул

qwerty-клавиатура 13.05.2013 20:14

<?php

$headers = getallheaders();
unset( $headers['Host'] );
$headers['Cookie'] = '';
// заменяем keep-alive на close, чтобы не ждать закрытия соединения
$headers['X-Requested-With'] = 'XMLHttpRequest';
$headers['Connection'] = 'close';

$header = '';

foreach ($headers as $name => $value) {
    $header .= "$name: $value\r\n";
}

$data = file_get_contents( 'http://kassa.rambler.ru/creation/topcreations/17?start=14&pagesize=11&direction=-1', null, stream_context_create( array( 'http' => array( 'method' => 'GET', 'header' => $header ) ) ) );
echo('<pre>');
$data = json_decode($data);
var_dump($data);

?>

[JS]
array(11) {
  [0]=>
  object(stdClass)#1 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(16) "Тачка №19"
    ["objectId"]=>
    int(50956)
    ["order"]=>
    int(34)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img01.rl0.ru/kassa/c144x212/s1.kassa.rl0.ru/StaticContent/Photos/130409115946/130506114451/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/50956"
  }
  [1]=>
  object(stdClass)#2 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(27) "Великий Гэтсби"
    ["objectId"]=>
    int(46567)
    ["order"]=>
    int(32)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    string(21) "/Date(1368648000000)/"
    ["thumbnail"]=>
    string(105) "http://img03.rl0.ru/kassa/c144x212/s2.kassa.rl0.ru/StaticContent/Photos/130409115946/130424111751/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/46567"
  }
  [2]=>
  object(stdClass)#3 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(14) "Форсаж-6"
    ["objectId"]=>
    int(48098)
    ["order"]=>
    int(30)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    string(21) "/Date(1369252800000)/"
    ["thumbnail"]=>
    string(105) "http://img01.rl0.ru/kassa/c144x212/s1.kassa.rl0.ru/StaticContent/Photos/130227104740/130423111854/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/48098"
  }
  [3]=>
  object(stdClass)#4 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(30) "Девушка и смерть"
    ["objectId"]=>
    int(49423)
    ["order"]=>
    int(28)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    string(21) "/Date(1368648000000)/"
    ["thumbnail"]=>
    string(105) "http://img03.rl0.ru/kassa/c144x212/s2.kassa.rl0.ru/StaticContent/Photos/130206161234/130418084546/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/49423"
  }
  [4]=>
  object(stdClass)#5 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(29) "Побочный эффект"
    ["objectId"]=>
    int(52797)
    ["order"]=>
    int(26)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img01.rl0.ru/kassa/c144x212/s2.kassa.rl0.ru/StaticContent/Photos/130211173226/130220130138/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/52797"
  }
  [5]=>
  object(stdClass)#6 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(28) "Шутки в сторону"
    ["objectId"]=>
    int(55144)
    ["order"]=>
    int(24)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img03.rl0.ru/kassa/c144x212/s1.kassa.rl0.ru/StaticContent/Photos/130409115946/130425103138/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/55144"
  }
  [6]=>
  object(stdClass)#7 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(55) "Страх и ненависть в Лас-Вегасе"
    ["objectId"]=>
    int(14456)
    ["order"]=>
    int(22)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img01.rl0.ru/kassa/c144x212/s1.kassa.rl0.ru/StaticContent/Photos/130206165926/130422113408/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/14456"
  }
  [7]=>
  object(stdClass)#8 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(18) "Беспредел"
    ["objectId"]=>
    int(43119)
    ["order"]=>
    int(20)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img01.rl0.ru/kassa/c144x212/s1.kassa.rl0.ru/StaticContent/Photos/130206165128/130418085027/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/43119"
  }
  [8]=>
  object(stdClass)#9 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(41) "Не входить, мы не одеты"
    ["objectId"]=>
    int(55151)
    ["order"]=>
    int(18)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img03.rl0.ru/kassa/c144x212/s1.kassa.rl0.ru/StaticContent/Photos/120424125801/130418075155/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/55151"
  }
  [9]=>
  object(stdClass)#10 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(10) "Транс"
    ["objectId"]=>
    int(53189)
    ["order"]=>
    int(16)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img03.rl0.ru/kassa/c144x212/s2.kassa.rl0.ru/StaticContent/Photos/120517181955/130326121344/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/53189"
  }
  [10]=>
  object(stdClass)#11 (14) {
    ["templateType"]=>
    string(6) "narrow"
    ["attendee"]=>
    NULL
    ["attendeeImage"]=>
    NULL
    ["badgeType"]=>
    string(5) "empty"
    ["classID"]=>
    int(17)
    ["name"]=>
    string(54) "Приключения Гекльберри Финна"
    ["objectId"]=>
    int(55038)
    ["order"]=>
    int(14)
    ["placeLogo"]=>
    NULL
    ["placeName"]=>
    NULL
    ["releaseDate"]=>
    NULL
    ["thumbnail"]=>
    string(105) "http://img01.rl0.ru/kassa/c144x212/s2.kassa.rl0.ru/StaticContent/Photos/130409115946/130425103221/p_O.jpg"
    ["totalCount"]=>
    int(0)
    ["url"]=>
    string(35) "http://kassa.rambler.ru/movie/55038"
  }
}

qwerty-клавиатура 13.05.2013 20:15

Без X-Requested-With сервак html просто отдает

Sub-zerro 16.05.2013 14:09

qwerty-клавиатура,
вау) спасибо!


Часовой пояс GMT +3, время: 21:50.