Anonim

Kadangi ne kartą nurodiau datą, o vėliau nepaleido jų API, nusprendžiau paimti šį klausimą į savo rankas. Atminkite, kad tai nėra idealus būdas daryti reikalus, tačiau kol kas jis veikia. Norėjau sudaryti mūsų populiariausių puslapių socialinę schemą, kad galėtume žinoti, kokios nuotraukos ir turinys rezonuoja su mūsų žiūrovais, todėl aš sugalvojau žemiau pateiktą scenarijų, tada perėjau kiekvieną URL mūsų duomenų bazėje ir gavau duomenis, kuriuos aš turiu. reikia.

Aš įsigilinau į „iframe“, kurį sukūrė mygtuko nuoroda, ir sugalvojau šį URL:
http: //pinit-cdn..com/pinit.html? url = http: //www.allrecipes.com
Tai buvo nesunku, numeris rodomas ten pat, jo „div id“ - „CountBubble“. Taigi, aš jį susukau ir panaudojau „php“ biblioteką simple_html_dom. Vis dėlto grįžo 0. Oi! Įkėlus puslapį, šis numeris keičiamas „javascript“. Turėjo peržiūrėti šaltinį, o ne tikrinti elementą. Taigi aš peržiūriu šaltinį ir ten yra tas gražus kodas, kuris tiesiog sėdi mano programavimo malonumui.

snode.setAttribute ('src', '//api..com/v1/urls/count.json?callback=receptCount&url='+targetUrl);

Remdamasis tuo, surinksiu šį URL, tikriausiai, surinksiu man reikalingus duomenis,
http: //api..com/v1/urls/count.json? callback = ReceiveCount & url = http: //www.allrecipes.com
kuriame rodoma:

„getCount“ ({"skaičius": 1148, "URL": "http://www.allrecipes.com"})

Taigi, jos „json“ duomenys yra įtraukti į funkcijos kvietimą iš API, kurios dar nebuvo išleisti viešai. Kaip patogu. Žemiau yra šiek tiek kodo, kurio reikia, kad šis darbas vyktų PHP. Savo serveryje turite įjungti CURL.

$ pinurl = "http: //api..com/v1/urls/count.json? callback = ReceiveCount & url ="; $ targeturl = "http://www.allrecipes.com/"; $ pinurl. = $ brandurl; $ html = pull_html ($ pinurl); // gaukite html naudodami funkciją, kuri iškviečia cURL $ html = str_replace ("ReceiveCount (" "", $ html); // pašalinkite funkcijos skambutį, duomenys suvynioti į $ html = substr ($ html, "", -1); $ = json_decode ($ html); // konvertuokite iš json į php masyvą $ pincount = $ -> count; echo $ pincount; // ten yra skaičiaus funkcija 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 $ html = curl_exec ($ ch); ;}

Kaip matote, mes traukiame duomenis su garbanomis, tada ištriname funkcijos skambutį, apvystytą aplink „Json“ duomenis. Tuomet tereikia naudoti „json_decode“, kad „json“ duomenys būtų paversti php masyvu. Voila! Viskas padaryta. Iki šiol turėjau apie 3000 URL ir duomenys neteikė jokių problemų. Kartais tai buvo šiek tiek lėta, nežinia, ar pagal sumanymą, ar dėl to. Jis vis tiek kaupia ir saugo duomenis, kai aš tai įvedu. Esu tikras, kad kažkuriuo metu bus ribojama norma, tačiau iki šiol nesu įsibėgėjęs į jokias sienas. Gal net nereikėtų to slėpti nuo programuotojų, bet, kiek žinau, oficialios paramos nėra, nebent esate vienas iš nedaugelio leidėjų, su kuriais jie pasirinko dirbti.

Gaunamas PHP taškų skaičius PHP