Тъй като многократно съм давал дата и впоследствие не успях да пусна техния API, реших да взема въпроса в свои ръце. Моля, обърнете внимание, че това не е идеалният начин за правене на неща, но засега работи. Исках да създам социална графика на най-популярните ни страници, така че да разберем какъв вид снимки и съдържание резонира с нашите зрители, така че измислих скрипта по-долу и след това прегледах всеки URL адрес в нашата база данни и получих данните I е необходимо.
Пробих надолу в iframe, който беше създаден с надпис за бутони и измислих този URL адрес:
HTTP: //pinit-cdn..com/pinit.html URL = HTTP: //www.allrecipes.com
Е, това беше лесно, номерът се показва точно там в собствения си div ID CountBubble. Така че го свих и използвах php-библиотеката simple_html_dom, за да разбера. Въпреки това продължава да връща 0. Опа! Този номер се променя с javascript след зареждане на страницата. Трябваше да е разгледал източника, вместо да проверява елемента. Затова вместо това гледам източника и имам това хубаво парче код, което просто седя там за моето удоволствие от програмирането.
snode.setAttribute ('src', '//api..com/v1/urls/count.json?callback=receiveCount&url='+targetUrl);
От това събирам следния URL адрес, вероятно ще извадя необходимите ми данни,
HTTP: //api..com/v1/urls/count.json обаждане = receiveCount & URL = HTTP: //www.allrecipes.com
който показва:
receCount ({"count": 1148, "url": "http://www.allrecipes.com"})
И така, неговите json данни, обвити във функционално обаждане от API, те все още не са пуснали публично. Колко удобно. По-долу е малкото код, който трябва да направите тази работа в PHP. Трябва да сте активирали cURL на вашия сървър.
$ pinurl = "http: //api..com/v1/urls/count.json? callback = acceptCount & url ="; $ targeturl = "http://www.allrecipes.com/"; $ pinurl. = $ brandurl; $ html = pull_html ($ pinurl); // вземете html чрез функция, която извиква cURL $ html = str_replace ("acceptCount (", "", $ html); // премахнете извикването на функцията, данните се увиват в $ html = substr ($ html, "", -1); $ = json_decode ($ html); // преобразуване от json в php масив $ pincount = $ -> count; echo $ pincount; // има числовата функция pull_html ($ url) {$ ch = curl_init () ; curl_setopt ($ ch, CURLOPT_URL, $ url); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 10); $ html = curl_exec (ch) $ ch); ;}
Както можете да видите, ние извличаме данните с къдряне и след това премахваме извикването на функцията, което е увито около данните json. Тогава е просто въпрос на използване на json_decode, за да превърнете json данните в php масив. Voila! Готово. Досега имах около 3000 URL адреса и данните се върнаха без проблем. Беше малко бавно на моменти, не съм сигурен дали по дизайн или от. Все още дърпа и съхранява данните, докато го въвеждам. Сигурен съм, че в един момент ще има някакъв лимит на скоростта, но досега не съм се сблъсквал с нито една стена. Може би това дори не трябва да е скрито от програмистите, но доколкото знам, няма официална поддръжка, освен ако не сте един от малкото издатели, които са избрали да работят.
