как создать экстрактор URL, например, facebook share

Мне нужно извлечь данные из url, такие как название, описание и любые изображения vedios в указанном URL-адресе, как кнопка общего доступа к facebook

например: http://www.facebook.com/sharer.php?u=http://www.wired.com&t=Test

С уважением

Embed.ly имеет приятный api именно для этой цели. Их api возвращает данные oEmbed сайта, если они доступны, в противном случае он пытается извлечь сводку страницы, например, Facebook.

Используйте что-то вроде cURL, чтобы получить страницу, а затем что-то вроде Simple HTML DOM, чтобы проанализировать ее и извлечь нужные элементы.

Если веб-сайт поддерживает oEmbed , это проще и надежнее, чем очистка HTML:

oEmbed – это формат, позволяющий встроенное представление URL-адреса на сторонних сайтах. Простой API позволяет веб-сайту отображать встроенный контент (например, фотографии или видео), когда пользователь отправляет ссылку на этот ресурс, без необходимости непосредственно анализировать ресурс.

oEmbed поддерживается такими сайтами, как YouTube и Flickr.

Я работаю над проектом по этой проблеме, это не так просто, как писать html-парсер и ожидать, что сайты будут «семантическими». Особенно извлечения видео и поиска параметров автоматической игры убивают. Вы можете проверить проект в http://www.embedify.me , который также имеет сценарий предварительного просмотра URL-адреса в стиле fb. Как я вижу, embed.ly и oembed являются пассивным парсером, им нужны сайты для их поддержки, так называемые провайдеры, подход совсем другой, чем fb.

Хотя я искал аналогичную функциональность, я столкнулся с демонстрацией jQuery + PHP функции извлечения url сообщений Facebook: http://www.99points.info/2010/07/facebook-like-extracting-url-data- с-JQuery-Ajax-PHP /

Вместо использования парсера HTML DOM он работает с простыми регулярными выражениями. Он ищет названия, описания и теги img. Следовательно, извлечение изображения не очень хорошо работает с множеством сайтов, которые используют CSS для изображений. Кроме того, Facebook смотрит сначала на свои собственные метатеги, а затем на классический тег описания HTML, но он хорошо иллюстрирует принцип.