Apakah ada sesuatu seperti nokogiri Ruby di nodejs? Maksud saya pengurai HTML yang mudah digunakan.
Saya telah melihat di halaman modul Node.js beberapa parser, tetapi saya tidak dapat menemukan sesuatu yang cantik dan segar.
Apakah ada sesuatu seperti nokogiri Ruby di nodejs? Maksud saya pengurai HTML yang mudah digunakan.
Saya telah melihat di halaman modul Node.js beberapa parser, tetapi saya tidak dapat menemukan sesuatu yang cantik dan segar.
Jawaban:
Jika Anda ingin membangun DOM, Anda dapat menggunakan jsdom .
Ada juga cheerio , ia memiliki antarmuka jQuery dan jauh lebih cepat daripada versi jsdom yang lebih lama, meskipun saat ini mereka memiliki kinerja yang serupa.
Anda mungkin ingin melihat htmlparser2 , yang merupakan pengurai streaming, dan menurut patokannya, tampaknya lebih cepat daripada yang lain, dan tidak ada DOM secara default. Itu juga dapat menghasilkan DOM, karena juga dibundel dengan pawang yang menciptakan DOM. Ini adalah parser yang digunakan oleh cheerio.
parse5 juga terlihat seperti solusi yang bagus. Ini cukup aktif (11 hari sejak komit terakhir pada pembaruan ini), WHATWG-compliant, dan digunakan dalam jsdom , Angular , dan Polymer .
Dan jika Anda ingin menguraikan HTML untuk pengikisan web , Anda dapat menggunakan YQL 1 . Ada modul simpul untuk itu. YQL Saya pikir akan menjadi solusi terbaik jika HTML Anda berasal dari situs web statis , karena Anda mengandalkan layanan, bukan kode Anda sendiri dan kekuatan pemrosesan. Meskipun perhatikan bahwa itu tidak akan berfungsi jika halaman tidak diizinkan oleh robot.txt dari situs web, YQL tidak akan bekerja dengannya.
Jika situs web yang Anda coba gesek adalah dinamis maka Anda harus menggunakan browser tanpa kepala seperti phantomjs . Lihat juga casperjs , jika Anda mempertimbangkan phantomjs. Dan Anda dapat mengontrol casperjs dari node dengan SpookyJS .
Di samping phantomjs ada zombiejs . Tidak seperti phantomjs yang tidak dapat tertanam dalam nodejs, zombiejs hanyalah modul simpul.
Ada nettuts + toturial untuk solusi terakhir.
1 Sejak Agustus 2014, perpustakaan YUI, yang merupakan persyaratan untuk YQL, tidak lagi dipelihara secara aktif, sumber
Coba https://github.com/tmpvar/jsdom - Anda memberinya HTML dan memberi Anda DOM.
Anda juga dapat melihat x-ray: https://github.com/lapwinglabs/x-ray