ES7/वादों का उपयोग कर
आमतौर पर नया तरीका है जब आप scraping रहे हैं आप
- करने के लिए कुछ विधि का उपयोग करने वेबसर्वर पर संसाधन जाओ चाहते हैं (आमतौर पर एचटीएमएल दस्तावेज़)
- उस संसाधन को पढ़ें और इसके साथ के रूप में कार्य करें
- एक डोम/पेड़ संरचना और इसे नेविगेट करने योग्य
- इसे एसएएस जैसे कुछ के साथ टोकन-दस्तावेज़ के रूप में पार्स करें।
दोनों पेड़, और टोकन-पार्सिंग फायदे हैं, लेकिन पेड़ आमतौर पर काफी सरल है। हम ऐसा करेंगे। request-promise की जाँच करें, यहाँ यह कैसे काम करता है:
const rp = require('request-promise');
const cheerio = require('cheerio'); // Basically jQuery for node.js
const options = {
uri: 'http://www.google.com',
transform: function (body) {
return cheerio.load(body);
}
};
rp(options)
.then(function ($) {
// Process html like you would with jQuery...
})
.catch(function (err) {
// Crawling failed or Cheerio
यह जो अनिवार्य रूप से एक हल्के सर्वर साइड jQuery-esque पुस्तकालय (कि एक खिड़की वस्तु, या jsdom की जरूरत नहीं है) है cheerio उपयोग कर रहा है।
क्योंकि आप वादे का उपयोग कर रहे हैं, तो आप इसे एक अचूक कार्य में भी लिख सकते हैं। यह तुल्यकालिक गौर करेंगे, लेकिन यह ES7 साथ अतुल्यकालिक हो जाएगा: लेकिन एक बार आप बात करने के लिए मिलता है, जहां आप जरूरत पार्स करने के लिए और
async function parseDocument() {
let $;
try {
$ = await rp(options);
} catch (err) { console.error(err); }
console.log($('title').text()); // prints just the text in the <title>
}
स्रोत
2016-05-31 02:17:54
मुझे लगता है कि आपका दूसरा लिंक आपके प्रश्न का उत्तर देता है –
@sirhc - node.io _exactly_ जैसा दिख रहा है ... धन्यवाद! – Avishai
node.io के लेखक के रूप में मैं इसके लिए झुका सकता हूं;) – chriso