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