Selepas menutup beberapa teori, dalam jawatan ini kita akan melakukan panggilan API demo di salah satu jawatan Sitepoint.
php perpustakaan
Perpustakaan PHP untuk Diffbot agak ketinggalan zaman, dan oleh itu kita tidak akan menggunakannya dalam demo ini. Kami akan melakukan panggilan API mentah, dan dalam beberapa jawatan masa depan kami akan membina perpustakaan kami sendiri untuk interaksi API.
Kemas kini, Julai 2015: Perpustakaan PHP telah dibangunkan sejak artikel ini diterbitkan. Lihat keseluruhan proses pembangunannya di sini, atau kod sumber di sini.
Kandungan JavaScript
kami berkata di bahagian pengenalan yang diffbot membuat permintaan sepenuhnya dan kemudian menganalisisnya. Tetapi, bagaimana dengan kandungan JavaScript? Pada masa kini, laman web sering membuat beberapa HTML di atas lipatan, dan kemudian selesaikan pemuatan kandungan CSS, JS, dan dinamik selepas itu. Bolehkah API Diffbot melihatnya?Diffbot mempunyai beberapa peringkat penggunaan. Terdapat peringkat percubaan percuma yang membunuh token API anda selepas 7 hari atau 10000 panggilan, yang mana lebih awal. Token komersial boleh dibeli pada pelbagai harga, dan tidak pernah tamat, tetapi mempunyai batasan. Satu kes khas oleh pendekatan kes diberikan untuk membuka sumber dan/atau projek pendidikan yang menyediakan model yang lebih lama dari token percuma - 10k panggilan setiap bulan, sekali per saat maksimum, tetapi tidak pernah tamat. Anda perlu menghubungi mereka secara langsung jika anda fikir anda layak.
Diffbot menjamin uptime yang tinggi, tetapi kegagalan kadang -kadang berlaku - terutamanya dalam API intensif yang paling banyak dari sekumpulan: Crawlbot. Crawlbot digunakan untuk merangkak keseluruhan domain, bukan hanya halaman individu, dan oleh itu mempunyai kadar kebolehpercayaan yang lebih rendah daripada API lain. Tidak banyak, tetapi cukup dapat dilihat di skrin kesihatan API - skrin yang anda boleh periksa untuk melihat sama ada API sedang berjalan dan berjalan atau tidak tersedia jika panggilan anda berjalan ke dalam isu atau ralat pulangan 500.
Untuk menyediakan persekitaran anda, sila boot contoh Homestead yang lebih baik.
Buat projek Laravel starter dengan SSHING ke VM dengan ssh vagrant, masuk ke dalam folder kod, dan melaksanakan komposer membuat projek Laravel/Laravel Laravel-Prefer-Dist. Ini akan membolehkan anda mengakses halaman ucapan Laravel melalui http://homestead.app:8000 dari pelayar tuan rumah.
dalam app/routes.php Tambahkan laluan berikut:
<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
Dalam App/Controllers/HomeController Tambahkan tindakan berikut:
<span>public function diffbotDemo() { </span> <span>die("hi"); </span> <span>}</span>
Jika http://homestead.app:8000/diffbot kini mengeluarkan "hi" di skrin, kami bersedia untuk mula bermain dengan API.
Untuk berinteraksi dengan API Diffbot, anda memerlukan token. Daftar untuk satu di halaman harga mereka. Demi demo ini, mari kita panggil token token kami, dan kami akan merujuknya seperti dalam URL. Gantikan token $ dengan nilai anda sendiri jika sesuai.
Kami akan menggunakan Guzzle sebagai pelanggan HTTP kami. Ia tidak diperlukan, tetapi saya mengesyorkan anda mengenali melalui artikel masa lalu kami.
Tambahkan "GuzzleHttp/Guzzle": "4.1.**@dev" ke komposer.json anda jadi blok yang memerlukannya kelihatan seperti ini:
"require": { "laravel/framework": "4.2.*", "guzzlehttp/guzzle": "4.1.*@dev" },
Dalam Root Projek, Kemas Kini Komposer Jalankan.
Dalam contoh pertama, kami akan merangkak jawatan SitePoint dengan API artikel lalai dari Diffbot. Untuk melakukan ini, kami merujuk kepada dokumen yang melakukan pekerjaan yang sangat baik untuk menjelaskan aliran kerja. Tukar badan tindakan diffbotdemo ke kod berikut:
<span>public function diffbotDemo() { </span> <span>$token = "<span><span>$TOKEN</span>"</span>; </span> <span>$version = 'v3'; </span> <span>$client = new GuzzleHttp<span>\Client</span>(['base_url' => 'http://api.diffbot.com/']); </span> <span>$response = $client->get($version.'/article', ['query' => [ </span> <span>'token' => $token, </span> <span>'url' => 'https://www.sitepoint.com/7-mistakes-commonly-made-php-developers/' </span> <span>]]); </span> <span>die(var_dump($response->json())); </span> <span>}</span>
Pertama, kami menetapkan token kami. Kemudian, kami menentukan pembolehubah yang akan memegang versi API. Seterusnya, terpulang kepada kami untuk membuat pelanggan Guzzle baru, dan kami juga memberikan URL asas supaya kami tidak perlu menaipnya setiap kali kami membuat permintaan lain.
Seterusnya, kami membuat objek tindak balas dengan menghantar permintaan GET ke URL API, dan kami menambah dalam pelbagai parameter pertanyaan dalam format nilai =>. Dalam kes ini, kita hanya lulus dalam token dan URL, yang paling asas parameter.
Akhirnya, kerana API DiffBot mengembalikan data JSON, kami menggunakan kaedah JSON () Guzzle untuk menyahkod secara automatik ke dalam array. Kami kemudian mencetak data ini:
Jika kita menambah parameter "medan" ke senarai param pertanyaan dan memberikan nilai "tag", DiffBot akan cuba mengekstrak tag/kategori dari URL yang disediakan. Tambahkan baris ini ke array pertanyaan:
<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
<span>public function diffbotDemo() { </span> <span>die("hi"); </span> <span>}</span>
Tetapi, kod sumber artikel mencatatkan beberapa tag lain:
Mengapa hasilnya sangat berbeza? Ini kerana sebab yang kita nyatakan pada akhir perenggan pertama jawatan ini: apa yang kita lihat manusia lebih penting. Diffbot adalah robot pembelajaran visual, dan oleh itu AI memotong tag dari kandungan yang diberikan sebenarnya - apa yang dapat dilihatnya - dan bukannya melihat kod sumber yang terlalu mudah dibumbui untuk tujuan SEO.
tag meta dan pengarang dengan API tersuai
API Kustom adalah ciri yang membolehkan anda bukan sahaja tweak API diffbot sedia ada dengan keinginan anda dengan menambahkan bidang dan peraturan baru untuk pengekstrakan kandungan, tetapi juga membolehkan anda membuat API yang baru (diakses melalui URL khusus) untuk pemprosesan kandungan tersuai.
Anda akan segera melihat medan pengarang kosong. Anda boleh tweak peraturan mencari pengarang dengan mengklik Edit di sebelahnya, dan mencari elemen pengarang dalam tetingkap Pratonton Live yang dibuka, kemudian klik padanya untuk mendapatkan hasil yang diinginkan. Walau bagaimanapun, disebabkan oleh beberapa, kurang daripada CSS yang sempurna pada akhir Sitepoint, sangat sukar untuk menyediakan API Diffbot dengan laluan yang konsisten kepada nama pengarang, terutamanya dengan mengklik elemen. Sebaliknya, tambahkan peraturan berikut secara manual: .contributor-besar .contributor_name a dan klik simpan.
anda akan melihat tetingkap pratonton sekarang dengan betul memaparkan medan pengarang:
OK, mari kita ubah API lebih lanjut. Kami memerlukan artikel: nilai tag yang dapat dilihat dalam kod sumber. Melakukan ini memerlukan proses dua langkah.
Langkah 1: Tentukan koleksi
Langkah 2: Tentukan bidang koleksi
Klik Simpan. Anda akan segera mendapat akses ke senarai tag dalam tetingkap hasil:
<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
kami mempunyai tag kami!
Diffbot adalah pengekstrak data yang kuat untuk web-sama ada anda perlu menyatukan banyak laman web ke dalam indeks carian tunggal tanpa menggabungkan back-ends mereka, ingin membina agregator berita, mempunyai idea untuk komponen web pratonton URL, atau Mahu kerap menuai kandungan senarai harga awam pesaing, DiffBot dapat membantu. Dengan panggilan API mudah mati dan respons yang sangat berstruktur, anda akan naik dan berjalan di sebelah tidak ada masa. Dalam artikel kemudian, kami akan membina API baru untuk menggunakan Diffbot dengan PHP, dan mengulangi panggilan di atas dengannya. Kami juga akan menjadi tuan rumah perpustakaan di Packagist, jadi anda boleh dengan mudah memasangnya dengan komposer. Tinggal!
DiffBot direka untuk mesra pengguna, dengan antara muka mudah dan arahan yang jelas. Walau bagaimanapun, seperti mana -mana alat, mungkin terdapat lengkung pembelajaran untuk pengguna baru. Mujurlah, Diffbot menawarkan pelbagai sumber untuk membantu pengguna memulakan, termasuk tutorial dan sokongan pelanggan. data. Ia adalah alat yang berkuasa untuk perniagaan yang perlu mengumpulkan dan menganalisis jumlah data yang besar dengan cepat dan tepat. Teknologi Pembelajaran Mesin Diffbot membolehkannya memproses data dengan cepat, menjadikannya alat yang berharga untuk projek data besar. Diffbot. Ini termasuk pemasaran, penyelidikan, kewartawanan, e-dagang, dan banyak lagi. Mana -mana industri yang bergantung pada pengumpulan dan menganalisis data dari web berpotensi mendapat manfaat daripada menggunakan diffbot. untuk menggunakan teknologi pembelajaran mesin. Ini membolehkan ia memahami dan mentafsir laman web dengan cara yang sama seperti bagaimana manusia akan, menjadikannya alat yang kuat dan tepat untuk pengekstrakan data. Walau bagaimanapun, seperti mana -mana alat, keberkesanannya boleh bergantung kepada keperluan khusus pengguna. Ia digunakan oleh pelbagai perniagaan dan industri untuk mengumpulkan dan menganalisis data dari web. Penggunaan teknologi pembelajaran mesin membolehkannya mengekstrak data yang relevan dengan tepat, menjadikannya alat yang dipercayai untuk pengekstrakan data.
Atas ialah kandungan terperinci Diffbot: merangkak dengan pembelajaran mesin visual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!