


Diffbot: merangkak dengan pembelajaran mesin visual
- 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?
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>
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.
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" },
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>
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.
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:
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:
<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
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!
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Terdapat empat jenis kesilapan utama dalam PHP: 1.Notice: yang paling sedikit, tidak akan mengganggu program, seperti mengakses pembolehubah yang tidak ditentukan; 2. Amaran: Serius daripada notis, tidak akan menamatkan program, seperti tidak mengandungi fail; 3. FatalError: Yang paling serius, akan menamatkan program ini, seperti tidak memanggil fungsi; 4. ParseError: Kesalahan sintaks, akan menghalang program daripada dilaksanakan, seperti lupa untuk menambah tag akhir.

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Kaedah permintaan HTTP termasuk GET, POST, PUT dan DELETE, yang digunakan untuk mendapatkan, menghantar, mengemas kini dan memadam sumber masing -masing. 1. Kaedah GET digunakan untuk mendapatkan sumber dan sesuai untuk operasi membaca. 2. Kaedah Pos digunakan untuk menyerahkan data dan sering digunakan untuk membuat sumber baru. 3. Kaedah Put digunakan untuk mengemas kini sumber dan sesuai untuk kemas kini lengkap. 4. Kaedah Padam digunakan untuk memadam sumber dan sesuai untuk operasi penghapusan.

Dalam php, kata laluan_hash dan kata laluan 1) password_hash menjana hash yang mengandungi nilai garam untuk meningkatkan keselamatan. 2) Kata Laluan_verify Sahkan kata laluan dan pastikan keselamatan dengan membandingkan nilai hash. 3) MD5 dan SHA1 terdedah dan kekurangan nilai garam, dan tidak sesuai untuk keselamatan kata laluan moden.

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

Fungsi anak panah diperkenalkan dalam Php7.4 dan merupakan bentuk penutupan ringkas. 1) Mereka ditakrifkan menggunakan => operator, fungsi tidak menggunakan kata kunci. 2) Fungsi anak panah secara automatik menangkap pembolehubah skop semasa tanpa kata kunci penggunaan. 3) Mereka sering digunakan dalam fungsi panggilan balik dan pengiraan pendek untuk meningkatkan kesederhanaan kod dan kebolehbacaan.

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7
