Anonim

Com que ha donat una data diverses vegades i, posteriorment, no va poder publicar la seva API, vaig decidir prendre l'assumpte a les meves mans. Tingueu en compte que aquesta no és la manera ideal de fer les coses, però, de moment, funciona. Volia construir un gràfic social de les nostres pàgines més populars perquè poguéssim saber quin tipus de fotos i contingut tenia ressonància amb els nostres espectadors, així que vaig presentar el guió següent i després vaig anar a la llista de totes les URL de la nostra base de dades i vaig obtenir les dades jo. necessari.

Vaig aprofundir en el iframe creat per un botó de trucades i vaig trobar aquesta URL:
http: //pinit-cdn..com/pinit.html? url = http: //www.allrecipes.com
Bé, això va ser fàcil, el número apareix aquí mateix en el seu propi id de divulgació CountBubble. Així que l’he arrodonit i he utilitzat la llibreria php simple_html_dom per analitzar-la. Va continuar tornant 0 però. Vaja! Aquest número es canvia amb javascript després de carregar la pàgina. Hauria d’haver vist la font en lloc d’inspeccionar l’element. Per tant, veig la font en lloc i hi ha un bon tros de codi que només estic assegut per al meu plaer de programar

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

A partir d’això, recopilo l’URL següent probablement trauré les dades que necessito,
http: //api..com/v1/urls/count.json? callback = ReceCount & url = http: //www.allrecipes.com
que mostra:

ReceCount ({"count": 1148, "url": "http://www.allrecipes.com"})

Així doncs, les seves dades json es van incloure en una trucada a la funció de l'API que encara no han publicat públicament. Què convenient. A continuació es mostra el poc de codi que necessiteu per funcionar a PHP. Heu d’haver habilitat cURL al vostre servidor.

$ pinurl = "http: //api..com/v1/urls/count.json? callback = ReceCount & url ="; $ targeturl = "http://www.allrecipes.com/"; $ pinurl. = $ brandurl; $ html = pull_html ($ pinurl); // obteniu el html mitjançant una funció que truca a cURL $ html = str_replace ("ReceCount (", "", $ html); // elimineu la trucada de funció. Les dades s'engloben en $ html = substr ($ html, "", -1); $ = json_decode ($ html); // convertir de json a php array $ pincount = $ -> count; eco $ pincount; // hi ha la funció número 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); $ curl_close ($ ch); curl_close ($ ch); curl_close ;}

Com podeu veure, traiem les dades amb un enrotllament i, a continuació, eliminem la trucada de funcions que s’engloba al voltant de les dades de json. Aleshores només és qüestió d'utilitzar json_decode per convertir les dades de json en una matriu de php. Voila! Tot fet. He publicat al voltant de 3.000 URL fins ara i les dades no han tornat cap problema. De vegades era una mica lent, no estic segur de si per disseny o per disseny. Es continua traient i emmagatzemant les dades mentre escric. Estic segur que en algun moment hi haurà alguna mena de limitació de tarifes, però fins ara no he topat amb parets. Potser ni tan sols s'hauria d'ocultar els programadors, però, pel que sé, no hi ha cap suport oficial a menys que sigui un dels pocs editors amb els quals hagi triat treballar.

Obtenció de pins de pinterest en php