Talep meta içerik kazıyıcı üzerinde gibi facebook

3 Cevap php

Siz hiç FB facebook (durum, mesaj vb) yayınlamak linki size link alanına yapıştırın ve çeşitli meta, görüntünün bir başparmak, bir sayfa linki çeşitli görüntüleri veya görüntüler hemen sonra canlı kazır olduğunu gördüm (youtube gibi) bir video ile ilgili bağlantı video başparmak.

Herhangi biri bu işlevi kopyalama nasıl fikir? Ben bir kaç Gearman işçiler hakkında düşünme ya da bir xhr isteklerini yapar ve regex Sitesinden veya benzer bir şey dayalı içeriği ayrıştırma daha iyi, sadece javascript ... herhangi bir fikir ediyorum? Herhangi bir link? birileri aynı yapmaya çalıştım ve güzel bir sınıfta sarılmış mı? şey? :)

teşekkürler!

3 Cevap

FB HTML meta etiketleri kazır.

Yani Eğer bir URL girdiğinizde, FB URL (kesilmiş), ardından sayfa başlığı, görüntüler, ve daha sonra içeriği öğesi.

Küçük resim seçiminde olduğu gibi, belki FB yani düğme grafikleri, 1px tutucular, vb atlayarak belli boyutlarını aşan yalnızca seçer düşünüyorum

Edit: I don't know exactly what you're looking for, but here's a function in PHP for scraping the relevant data from pages.
This uses the simple HTML DOM library from http://simplehtmldom.sourceforge.net/

Ben FB yapar nasıl bir göz yaşadım ve kazıma sunucu tarafında yapılır gibi görünüyor.


    class ScrapedInfo
    {
        public $url;
        public $title;
        public $description;
        public $imageUrls;
    }

    function scrapeUrl($url)
    {
        $info = new ScrapedInfo();
        $info->url = $url;
        $html = file_get_html($info->url);

        //Grab the page title
        $info->title = trim($html->find('title', 0)->plaintext);

        //Grab the page description
        foreach($html->find('meta') as $meta)
                if ($meta->name == "description")
                        $info->description = trim($meta->content);

        //Grab the image URLs
        $imgArr = array();
        foreach($html->find('img') as $element)
        {
                $rawUrl = $element->src;

                //Turn any relative Urls into absolutes
                if (substr($rawUrl,0,4)!="http")
                        $imgArr[] = $url.$rawUrl;
                else
                        $imgArr[] = $rawUrl;
        }
        $info->imageUrls = $imgArr;

        return $info;
    }

Facebook bir bağlantı alana yapıştırın sayfanın HTML çeşitli meta bilgilerine bakar. title ve description iki belirgin olanları vardır ama bir geliştirici de <link rel="image_src" href="thumbnail.jpg" /> Tercih ScreenGrab sağlamak için kullanabilirsiniz. Ben bu işler için kontrol edebilir sanırım. Bu etiketi eksik ise her zaman bir website thumbnail generation servisini kullanabilirsiniz.

Ben böyle bir proje geliştiriyorum gibi, göründüğü kadar kolay değil, kodlama sorunları, javascript ile render içerik, pek çok non-semantik web sitelerinin varlığı karşılaştığım büyük sorunlardan biridir. Özellikle video bilgisi ayıklanması ve auto-play davranışı almaya çalışırken hep zor ya da bazen imkansızdır. Sen http://www.embedify.me, bu. Net yazılmış bir demo görebilirsiniz ama aynı zamanda fb aynı ui / davranış almak için javascript api var, javascript yoluyla diyoruz böylece bir servis arayüzü var.