Koska se on toistuvasti antanut päivämäärän ja sitten myöhemmin jättänyt vapauttamatta heidän sovellusliittymänsä, päätin ottaa asian omiin käsiini. Huomaa, että tämä ei ole ihanteellinen tapa tehdä asioita, mutta toistaiseksi se toimii. Halusin luoda sosiaalisen kaavion suosituimmista sivuistamme, jotta voisimme tietää, millaiset valokuvat ja sisältö resonoivat katsojiemme kanssa, joten keksin alla olevan käsikirjoituksen ja silmukoin sitten jokaista tietokantamme URL-osoitetta ja sain tiedot tarvittu.
Porasin alas painikehuomautuksen luomaan iframe-kehykseen ja keksin tämän URL:
http: //pinit-cdn..com/pinit.html? url = http: //www.allrecipes.com
No, se oli helppoa, numero näkyy siellä omassa div id CountBubblessa. Joten käpristin sen ja käytin jäsentää php-kirjastoa simple_html_dom. Palasi kuitenkin 0. Oho! Numeroa muutetaan javascriptillä sivun lataamisen jälkeen. Pitäisi katsoa lähdettä sen sijaan, että tutkittaisiin elementtiä. Joten tarkastelen lähdettä sen sijaan, ja siellä on tämä hieno koodi vain istumassa siellä ohjelmointiin nautinnon vuoksi.
snode.setAttribute ('src', '//api..com/v1/urls/count.json?callback=receptionCount&url='+targetUrl);
Sen jälkeen kerän seuraavan URL-osoitteen, joka todennäköisesti kerää tarvitsemani tiedot,
http: //api..com/v1/urls/count.json? soittopyynnön = receiveCount & url = http: //www.allrecipes.com
joka näyttää:
ReceiveCount ({"count": 1148, "url": "http://www.allrecipes.com"})
Joten, sen json-data on kääritty funktiokutsuun API: lta, jota he eivät ole vielä julkaissut julkisesti. Kuinka kätevää. Alla on vähän koodia, joka tarvitaan tämän työn tekemiseen PHP: ssä. CURL-palvelimen on oltava käytössä palvelimellasi.
$ pinurl = "http: //api..com/v1/urls/count.json? callback = ReceiveCount & url ="; $ targeturl = "http://www.allrecipes.com/"; $ pinurl. = $ brandurl; $ html = pull_html ($ pinurl); // hae html toiminnon kautta, joka kutsuu cURL $ html = str_replace ("ReceiveCount (" "", $ html); // poista toimintopuhelu, data on kääritty $ html = substr ($ html, "", -1); $ = json_decode ($ html); // muunna jsonista php-taulukkoon $ pincount = $ -> count; echo $ pincount; // siellä on numerofunktio 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; ;}
Kuten näette, vedämme tiedot käpristymällä ja poistamme sitten funktion kutsun, joka on kiedottu json-tietojen ympärille. Sitten on vain kysymys json_decode-tiedoston käyttämisestä json-tietojen muuttamiseksi php-taulukkoksi. Voila! Valmista. Minulla on toistaiseksi ollut noin 3000 URL-osoitetta, ja tiedot eivät ole palauttaneet mitään ongelmaa. Se oli toisinaan hieman hidasta, etten ollut varma suunnittelusta vai suunnittelusta. Se edelleen vetää ja tallentaa tietoja kirjoittaessani tätä. Olen varma, että jossain vaiheessa tapahtuu jonkinlainen nopeudenrajoitus, mutta en ole toistaiseksi törmännyt mihinkään seinämiin. Ehkä tämän ei edes ole tarkoitus piiloutua ohjelmoijilta, mutta minusta tiedän, että virallista tukea ei ole, ellet ole yksi harvoista julkaisijoista, joiden kanssa he ovat päättäneet työskennellä.
