Помогите. Перебрать заголовки через CURL.

Тема в разделе "PHP Pro", создана пользователем rom4art2, 19 янв 2010.

Статус темы:
Закрыта.
  1. rom4art2

    rom4art2

    Регистр.:
    27 фев 2009
    Сообщения:
    207
    Симпатии:
    88
    Здравствуйте, такая вот задача.
    Хочу сделать парсер видео, на входе страничка с видео - на выходе ссылка на видеофайл для скачки. Программ и сервисов достаточно, но все же...
    есть такой алгоритм:
    Загружаем страницу с видео через CURL, циклом перебираем все заголовки. Берем заголовок с самым большим размером, выдираем оттуда URL - это и будет ссылка для скачивания)
    Алгоритм вроде рабочий, но из-за не профессионализма не знаю как перебрать заголовки и извлечь оттуда URL:confused:

    Нашел функцию получения контента, подскажите как извлечь URL с видео?

     
  2. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    покажи страничку откуда выдерать данные

    получить страничку и парсить данные с помощью regexp
     
    rom4art2 нравится это.
  3. rom4art2

    rom4art2

    Регистр.:
    27 фев 2009
    Сообщения:
    207
    Симпатии:
    88
    к примеру любая страничка видео на ютуб.
     
  4. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    напиши более конкретно че нуджно сделать
     
  5. rom4art2

    rom4art2

    Регистр.:
    27 фев 2009
    Сообщения:
    207
    Симпатии:
    88
    В общем, при загрузке страницы с ютуба или другого ресурса, через firebag или temper data можно просмотреть заголовки каждого елемента на странице, отсортировать их всех по размеру, и получить заголовок в котором записан сам URL видео файла.
    Я хочу написать функцию, которая будет делать все вышеперечисленное, и отдавать только ссылку на видео файл.

    Тоесть получить ссылку на видео из заголовка где Content-Length[больше чем у всех остальных]. Для этого нужно перебрать ontent-Length[] у всех елементов на странице.
    Как можно осуществить подобное?:bc:
    или может я куда-то не туда мыслю?:nezn:
     
  6. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
  7. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    Как я понял, задача получить ссылку на скачивание для определенного ролика на видео-сервисе(например, YouTube). Имхо реализация через анализ заголовков нереальна. Потому что получится сделать лишь 1ый запрос - на страницу с урлом.
    В принципе, с утубом тесно не сталкивался. Но беглый осмотр показал следующее: в коде страницы с видео есть ссылка вида
    Код:
    http://v4.lscache6.c.youtube.com/generate_204?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&algorithm=throttle-factor&itag=34&ipbits=0&burst=40&sver=3&expire=1264082400&key=yt1&signature=D80384EF478ECDD09042D8EA17A5F93985EE271B.181B0AF33EB0E0999207F0E26522AA64AD71656C&factor=1.25&id=e7b502285faf346f
    Парсим эту линку, заменяем generate_204 на videoplayback и получаем линк на скачивание flv. Повторюсь, это только первое впечатление - нужно проверить на определенной выборке данных.
     
  8. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    такое невозможно голыми средствами CURL-а
    он только загружает конкретную ссылку которую вы ему укажите.
    никаких связанных с ней документов, как в случае браузера он не грузит
    то есть если вы ему скармливаете ссылку на HTML страницу, то он не получает никаких ссылок/заголовков для рисунков на странице, и приаттаченных к нему скриптов/CSS/видео/музыки
    он вообще понятия не имеет об этом.
    писать универсальный парсер, который бы разбирал весь HTML, и находил бы все файлы необходимые для отображения-напрасная трата сил, так как такой скрипт будет слишком сложным.
    Для решения вашей задачи(и аналогичных)есть только один способ:
    1)загружаем страницу на которой показывыается пользователю видео
    2)с помощью регулярок/DOM/etc парсим страницу, выдирая конкретную ссылку на видео.
    вполне возможно что она зашифрована в каком-то виде/разнесена по частям во flash-vars, либо вообще получается ajax-запросом на определенный скрипт
    3)поулчив конкретную ссылку, вы уже можете приступить к скачиванию, либо отображению пользователю
    4)...
    5)PROFIT
     
    rom4art2 нравится это.
Статус темы:
Закрыта.