[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: парсинг сайта
Night User
Возможно ли пропарсить intv.ru

Поясню проблему. Нужно получить прямую ссылку для видео с INTV.ru это умеет делать _http://ru.savefrom.net

Какой Header не подсовываю - savefrom.net все равно определяет и ссылку не дает



Спустя 48 минут, 26 секунд (29.08.2010 - 16:48) Romms написал(а):
cUrl? file_get_contens? каким способом делал? Код в студию!

Спустя 1 час, 35 минут, 31 секунда (29.08.2010 - 18:24) Night User написал(а):
Так... я немного продвинулся с решением проблемы.
<?php
$video_get = $_GET['g'];
if ( preg_match('|film_id|U', $video_get) == true )
{
$temp = file_get_contents($video_get, false);
preg_match('#<input type="text" value="http://(www|).intv.ru/v/(.*)&playNow=1" onfocus="this.select\(\);" onclick="this.select\(\);" readonly>#U', $temp, &$matches);
}
else
{
preg_match('#http://(www|).intv.ru/v/(.*)$#U', $video_get, &$matches);
}
$id = $matches[2];
$opts = array(
'http'=>array(
'method' => 'POST',
'header' => 'reherer29153: b9c244edc3a8050185443f296ceef452' . "\r\n",
'content' => http_build_query(array('id' => $id)),
'timeout' => 15,
)
);

$context = stream_context_create($opts);
$file = file_get_contents('http://flv.intv.ru/watch/reg.php', false, $context);
preg_match('|<url><!\[CDATA\[(.*)\]\]></url>|U', $file, &$video);
$url = $video[1];
foreach ( get_headers($url) as $header )
{
header($url);
}
echo file_get_contents($url);


Проблема в том, что необходимо отослать определенный заголовок. Само название не изменяется (reherer29153). Зато его значение...
Например:
_http://www.intv.ru/v/qTRx4t40qM : e060caf1c5a6ff6497ed9d5f2379e3b9
_http://www.intv.ru/v/ISZMu7ZQ5n : b9c244edc3a8050185443f296ceef452
_http://www.intv.ru/v/Cixe9IdAIb : fdbb2e3c5e207d3c13e11117bcce83bd

Спустя 5 минут, 58 секунд (29.08.2010 - 18:30) Romms написал(а):
Цитата
Проблема в том, что необходимо отослать определенный заголовок

unsure.gif просвити
http://www.intv.ru/v/qTRx4t40qM : e060caf1c5a6ff6497ed9d5f2379e3b9

собственно, что это?

Спустя 1 минута, 53 секунды (29.08.2010 - 18:32) Night User написал(а):
http://www.intv.ru/v/qTRx4t40qM - ссылка на страницу видео
e060caf1c5a6ff6497ed9d5f2379e3b9 - значение, которое необходимо отослать

заголовок:
header 'reherer29153: b9c244edc3a8050185443f296ceef452' (значение для разных видео разное)

Спустя 6 минут, 50 секунд (29.08.2010 - 18:39) Romms написал(а):
Цитата
e060caf1c5a6ff6497ed9d5f2379e3b9 - значение, которое необходимо отослать

ПОСТ? наименования значения какое?

одним словом - юзай cUrl

Спустя 3 минуты, 33 секунды (29.08.2010 - 18:42) Night User написал(а):
нет, не POST
cURL в данном случае не поможет, т.к. я не знаю откуда получить данное значение средствами PHP

те, что выше получены плагином для Firefox (просмотровщик header)

Спустя 7 минут, 54 секунды (29.08.2010 - 18:50) mamamiya написал(а):
curl и header умеет читать. Вот такой вот он волшебный) курите http://ua2.php.net/manual/en/book.curl.php

Спустя 2 минуты, 57 секунд (29.08.2010 - 18:53) Romms написал(а):
Night User, иди и читай про cUrl и HTTP headers...

Спустя 9 минут, 23 секунды (29.08.2010 - 19:02) Night User написал(а):
ну как бэ тут не от cURL зависит... просто надо сделать обращение к скрипту, который проверит header и в зависимости от этого либо отдает нужную страницу, либо дает 404 ошибку
<?php
$ch = curl_init('http://flv.intv.ru/watch/reg.php?id=Cixe9IdAIb');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('reherer29153: fdbb2e3c5e207d3c13e11117bcce83bd'));
$c = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE);


Cixe9IdAIb - id видеозаписи. В итоге получаем прямую ссылку на нее
Без этой строчки:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('reherer29153: fdbb2e3c5e207d3c13e11117bcce83bd'));

Отдает 404 ошибку

Спустя 3 минуты, 57 секунд (29.08.2010 - 19:06) Romms написал(а):
Night User,так в чём проблема?

Спустя 1 минута, 7 секунд (29.08.2010 - 19:07) Night User написал(а):
Для видеозаписи с другим ID нужно и другую строчку указывать smile.gif

т.е. не fdbb2e3c5e207d3c13e11117bcce83bd а что-то другое...

Спустя 10 минут, 8 секунд (29.08.2010 - 19:18) mamamiya написал(а):
а откуда ты этот header получаешь? его ведь можно отдать как то курлу, правда?

Спустя 3 минуты, 18 секунд (29.08.2010 - 19:21) Night User написал(а):
Получил я его при помощи дополнения для Firefox livehttpheaders

Спустя 2 минуты, 5 секунд (29.08.2010 - 19:23) Romms написал(а):
    $file=file_get_contents("http://www.intv.ru/v/qTRx4t40qM");
preg_match('/var so = new SWFObject\("(http:\/\/flash.intv.ru\/uplayer.swf\?id\=(.*?))", "intv", "580", "460", "9", "\#000000"\);/is', $file, $matches);

echo $matches[1];//полная ссылка на файл
echo $matches[2];// id или как там его назвать...


Спустя 1 минута, 1 секунда (29.08.2010 - 19:24) Night User написал(а):
В этом нет проблемы. регулярку я уже давно написал

Этого ID НЕДОСТАТОЧНО

Кстати, зачем парсить страницу, если этот самый ID обозначен в самой ссылке...

Спустя 2 минуты, 17 секунд (29.08.2010 - 19:26) Romms написал(а):
Ну так проспись и напишешь что тебе нужно!!

Спустя 4 минуты, 27 секунд (29.08.2010 - 19:31) Night User написал(а):
Я больше всего опасаюсь, что этот хэш генерируется посредством md5_file() или чего-то похожего
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.