Rumah > pembangunan bahagian belakang > tutorial php > Diffbot: merangkak dengan pembelajaran mesin visual

Diffbot: merangkak dengan pembelajaran mesin visual

Jennifer Aniston
Lepaskan: 2025-02-20 12:44:11
asal
881 orang telah melayarinya

Diffbot: merangkak dengan pembelajaran mesin visual

Takeaways Key

    Diffbot adalah "robot pembelajaran visual" yang menggunakan pembelajaran mesin untuk merangkak URL dan mengekstrak data secara visual, menyediakan tafsiran yang lebih dipercayai dan manusia seperti kandungan web daripada crawler web tradisional.
  • API DiffBot sepenuhnya menjadikan halaman, termasuk kandungan JavaScript, dan membolehkan pengekstrakan pelbagai jenis data dari laman web, termasuk teks, imej, video, dan metadata seperti pengarang atau tarikh penerbitan.
  • Ciri API Custom DiffBot membolehkan pengguna tweak API diffBot sedia ada atau membuat yang baru untuk pemprosesan kandungan tersuai, membolehkan pengekstrakan elemen data tertentu dari kod sumber.
  • Pernahkah anda tertanya -tanya bagaimana rangkaian sosial melakukan pratonton URL dengan baik apabila anda berkongsi pautan? Bagaimanakah mereka tahu imej mana yang hendak direbut, siapa yang hendak dipetik sebagai pengarang, atau tag mana yang dilampirkan pada pratonton? Adakah semuanya merangkak dengan regex yang kompleks melalui kod sumber? Sebenarnya, lebih kerap daripada tidak, tidak. Maklumat meta yang ditakrifkan dalam sumber boleh menjadi tidak boleh dipercayai, dan laman web yang kurang daripada reputasi bintang sering menggunakannya sebagai pembawa kata kunci, cuba mendapatkan enjin carian untuk menarafkannya lebih tinggi. Bukankah kita, manusia, lihat di hadapan kita apa yang penting?
Jika anda ingin membina coretan pratonton URL atau agregator berita, terdapat banyak crawler automatik yang tersedia dalam talian, kedua -dua sumber proprietari dan terbuka, tetapi anda jarang mencari sesuatu yang niche sebagai pembelajaran mesin visual. Ini adalah apa yang diffbot - "robot pembelajaran visual" yang menjadikan URL yang anda minta sepenuhnya dan kemudian mengekstrak data secara visual, membantu dirinya dengan beberapa metadata dari sumber halaman seperti yang diperlukan.

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.

Jika anda ingin melihat perpustakaan PHP, lihat di sini, dan jika anda berminat dengan perpustakaan untuk bahasa lain, Diffbot mempunyai direktori.

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?

Sebenarnya, ya. Diffbot secara harfiah menjadikan halaman itu sepenuhnya, dan kemudian memeriksa secara visual, seperti yang dijelaskan dalam StackOverflow Q & A saya di sini. Terdapat beberapa kaveat, jadi pastikan anda membaca jawapan dengan teliti.

Harga dan Kesihatan API

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.

Demo

Untuk menyediakan persekitaran anda, sila boot contoh Homestead yang lebih baik.

Buat Projek

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.

tambahkan laluan dan tindakan

dalam app/routes.php Tambahkan laluan berikut:

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dalam App/Controllers/HomeController Tambahkan tindakan berikut:

<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>
Salin selepas log masuk
Salin selepas log masuk

Jika http://homestead.app:8000/diffbot kini mengeluarkan "hi" di skrin, kami bersedia untuk mula bermain dengan API.

Dapatkan token

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.

Pasang Guzzle

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"
	},
Salin selepas log masuk

Dalam Root Projek, Kemas Kini Komposer Jalankan.

Ambil data artikel

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>
Salin selepas log masuk

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:

Diffbot: merangkak dengan pembelajaran mesin visual

Seperti yang anda lihat, kami mendapat beberapa maklumat kembali dengan cepat. Terdapat ikon yang digunakan, pratonton teks, tajuk, bahkan bahasa, tarikh dan HTML telah dikembalikan. Walau bagaimanapun, anda akan melihat tidak ada pengarang, bagaimanapun. Mari kita ubah ini dan minta beberapa nilai lagi.

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>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
dan kemudian tukar bahagian mati ini:

<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>
Salin selepas log masuk
Salin selepas log masuk
menyegarkan skrin sekarang memberi kita ini:

Diffbot: merangkak dengan pembelajaran mesin visual 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. Diffbot: merangkak dengan pembelajaran mesin visual

Adakah terdapat cara untuk mendapatkan tag dari kod sumber, walaupun, jika seseorang benar -benar memerlukannya? Selain itu, bolehkah kita membuat diffbot mengenali pengarang pada artikel SitePoint? Ya. Dengan API tersuai.

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.

pergi ke papan pemuka dev dan log masuk dengan token anda. Kemudian, pergi ke "API Custom". Aktifkan tab "Buat Peraturan" di bahagian bawah, dan masukkan URL artikel yang kami merangkak ke dalam kotak URL, kemudian klik Ujian. Skrin anda harus kelihatan seperti ini:

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:

Diffbot: merangkak dengan pembelajaran mesin visual

Malah, peraturan baru ini digunakan secara automatik untuk semua pautan SitePoint untuk token anda. Jika anda cuba melihat pratonton artikel SitePoint lain, seperti ini, anda akan melihat Peter Nijssen berjaya diekstrak:

Diffbot: merangkak dengan pembelajaran mesin visual 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

Koleksi adalah betul -betul seperti apa - koleksi nilai yang disambar melalui peraturan tertentu. Kami akan memanggil koleksi kami "Metatags", dan memberikan pemilih berikut: Meta [Property = Artikel: Tag]. Ini bermakna "Cari semua elemen meta dalam HTML yang mempunyai atribut harta dengan artikel nilai: tag".

Langkah 2: Tentukan bidang koleksi

Bidang pengumpulan adalah penyertaan individu dalam koleksi - dalam kes kami, pelbagai tag. Klik pada "Tambah medan tersuai ke koleksi ini", dan tambahkan nilai berikut:

Klik Simpan. Anda akan segera mendapat akses ke senarai tag dalam tetingkap hasil: Diffbot: merangkak dengan pembelajaran mesin visual

Tukar output akhir tindakan diffbotdemo () untuk ini:

Diffbot: merangkak dengan pembelajaran mesin visual

Jika anda sekarang menyegarkan URL yang kami uji dengan (http://homestead.app:8000/diffbot), anda akan melihat nilai pengarang dan meta di sana. Inilah output baris kod di atas menghasilkan:

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

kami mempunyai tag kami!

Kesimpulan

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!

Soalan Lazim (Soalan Lazim) Mengenai Diffbot

Apakah fungsi utama DiffBot?

DiffBot adalah alat pengikis web yang menggunakan teknologi pembelajaran mesin untuk mengekstrak dan menganalisis data dari laman web. Ia direka untuk memahami laman web dengan cara yang sama manusia akan, menjadikannya alat yang berkuasa untuk pengekstrakan data. DiffBot boleh digunakan untuk mengumpulkan data dari laman media sosial, artikel berita, halaman produk, dan banyak lagi. Ia amat berguna untuk perniagaan yang perlu mengumpulkan sejumlah besar data dengan cepat dan tepat. dan mentafsirkan laman web. Ia menggunakan algoritma untuk menganalisis struktur dan kandungan laman web, kemudian mengekstrak data yang relevan berdasarkan analisis tersebut. Ini membolehkan diffbot memahami laman web dengan cara yang serupa dengan bagaimana manusia akan, menjadikannya alat yang berkuasa untuk pengekstrakan data. Pelbagai jenis data dari laman web. Ini termasuk teks, imej, video, dan banyak lagi. Ia juga boleh mengekstrak metadata, seperti pengarang laman web atau tarikh ia diterbitkan. Ini menjadikan diffbot alat serba boleh untuk pengekstrakan data, yang mampu mengumpulkan pelbagai maklumat dari web. Penggunaan teknologi pembelajaran mesin. Ia direka untuk memahami laman web dengan cara yang sama seperti manusia, yang membolehkannya mengenal pasti dan mengekstrak data yang relevan dengan tepat. Walau bagaimanapun, seperti mana -mana alat, ketepatannya boleh bergantung kepada kerumitan laman web dan jenis data yang diekstrak. Ekstrak data dari laman media sosial. Ini termasuk laman web seperti Facebook, Twitter, dan LinkedIn. Ia boleh mengumpulkan data seperti jawatan, komen, suka, dan saham, menjadikannya alat yang berguna untuk analisis media sosial dan penyelidikan pemasaran.

adalah diffbot mudah digunakan?

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan