Pregled¶
Diffbot¶
Diffbot je softverski robot, spoj umjetne inteligencije i strojnog ucenja, koji vizualno procesuira web stranice i vraca strukturirane JSON podatke o istima.
Drugim rijecima, Diffbotu se daje URL, te on vraca podatke koji su citljivi ljudima. Razlika Diffbota i tradicionalnih crawlera je u tome sto Diffbot ne ovisi o izvornom HTML kodu koji nalazi na danim web stranicama, vec ih vizualno promatra i pokusava dokuciti ljudima bitne elemente, te iste pretvoriti u vrstu podataka koju krajnji korisnik lako konzumira u svojim aplikacijama. Samim time, Diffbot je relativno imun na SEO pretjerivanja i sulude kolicine meta tagova u HTML kodu koji se obicno koriste kako bi se prevario Google i preferirao neke stranice vise od drugih.
Diffbotovim servisima se pristupa kroz set definiranih API tocaka.
Da biste saznali vise o Diffbotu kao servisu, pogledajte sluzbenu dokumentaciju ili neke od sljedecih tutorijala:
Diffbotov PHP klijent¶
Diffbotov PHP klijent je sluzbeni PHP wrapper za koristenje API tocaka.
Koristenjem PHP klijenta, developeri s lakocom upravljaju kako API tockama, tako i samim entitetima koje API tocke vracaju nakon izvrsenih poziva. To uvelike olaksava konzumiranje vracenih podataka, jer odstranjuje sloj procesuiranja JSON strukture, i pruza direktni pristup na vrijednosti vracenih objekata. PHP klijent koristi Guzzle za slanje poziva na API tocke - verzija koja se koristi je Guzzle 5, i nema planova u bliskoj buducnosti za prelaz na svojstvima siromasniju verziju 6.
Brzi pocetak¶
Instalirajte putem Composera:
composer require swader/diffbot-php-client
Kreirajte novu Diffbot instancu, dajte joj token, definirajte URL koji zelite obraditi, te napokon iz svega kreirajte instancu API tocke koju cete zvati:
$diffbot = new Diffbot('my_token');
$url = 'http://www.sitepoint.com/diffbot-crawling-visual-machine-learning/';
$articleApi = $diffbot->createArticleAPI($url);
Podesite API poziv prema svojim potrebama pomocu settera (svi ce setteri biti detaljno objasnjeni u ovoj dokumentaciji), te posaljite poziv:
$processedArticle = $articleApi->setDiscussion(false);
Upotrijebite dobivene podatke na koji god nacin vam odgovara:
echo $processedArticle->author; // Bruno Skvorc
Brzi linkovi¶
Slijedi popis linkova na specificne aspekte ovog klijenta, ovisno o vasim potrebama:
Products API - ukoliko trebate obraditi online proizvode, web shopove, stranice na aukcijskim sjatovima, itd.
Articles API - ukoliko trebate obraditi clanke, novosti, blog postove, i slicno.
Discussion API - za obradu tema na forumima, komentara, te drugih vrsta dvosmjerne komunikacije.
Analyze API - ukoliko ne znate sto cete obradjivati, te se zelite pouzdati u Diffbotovu intuiciju. Diffbot ce dati sve od sebe da sam shvati o kakvom se sadrzaju radi, te ce primjeniti jedan od odgovarajucih API-ja.
Image API - ako planirate obraditi stranice koje sadrze mnogo grafickih elemenata, te zelite podatke o tim elementima. Primjeri su galerije, Pinterest stranice, Instagram, itd.
Custom API - ako ste izgradili svoj API na Diffbotu, te ga zelite koristiti s klijentom. Dobro radi u tandemu s EntityFactory klasom.
Crawl API - ako zelite primjeniti neki od gore navedenih API-ja na velik broj URLova odjednom.
Search API - ako zelite pretraziti rezultate dobivene Crawl API-jem.
Koji god API mislite koristiti, u svakom slucaju prvo prodjite kroz Diffbot klasu.