2011-04-05 15 views
13

कोई जावास्क्रिप्ट वेब क्रॉलर ढांचा है?क्या कोई जावा स्क्रिप्ट वेब क्रॉलर फ्रेमवर्क

+0

आप अधिक विशिष्ट हो सकता है:

टेस्ट स्वीट से, यहां न्यूयॉर्क टाइम्स की वेबसाइट रेंगने का एक उदाहरण है? क्या आप जावास्क्रिप्ट में लागू एक वेब क्रॉलर की तलाश में हैं? सर्वर-साइड (Node.js) या क्लाइंट-साइड (ब्राउज़र में)? –

+4

क्या क्लाइंट-साइड वेबक्रॉलर ढांचा है? यह कैसे काम करेगा? – Shakakai

+0

मैंने सर्वर-साइड जावास्क्रिप्ट का उपयोग करके तीन एपीआई लिखीं। आप अपनी कमांड लाइन से 'nodejs' को जितना आसान हो सके उतना आसान कर सकते हैं जितना आप पाइथन कर सकते हैं। यह एक बिल्कुल वैध सवाल है। – slezica

उत्तर

8

PhantomJS आज़माएं। वास्तव में एक क्रॉलर नहीं है, लेकिन उस उद्देश्य के लिए आसानी से उपयोग किया जा सकता है। इसमें स्क्रीनशॉट आदि को सहेजने की क्षमता के साथ अंतर्निहित पूर्ण-कार्यात्मक वेबकिट इंजन है। सरल कमांड लाइन जेएस दुभाषिया के रूप में कार्य करता है।

1

सर्वर-साइड?

कोशिश नोड क्रॉलर: https://github.com/joshfire/node-crawler

+0

मैं इसे एक क्रॉलर नहीं मानूंगा क्योंकि यह बाद में यूरी को क्रॉल करने के लिए संकलित नहीं करता है। यह मूल रूप से किसी दिए गए यूआरएल के स्रोत को डाउनलोड करेगा और पूरा होने पर कॉलबैक ट्रिगर करेगा। यह उस पृष्ठ में दिए गए लिंक को क्रॉल करने के लिए तर्क को परिभाषित करने के लिए उपभोक्ता पर निर्भर है, जो कुछ बहुत सरल नहीं है। –

10

एक नई रूपरेखा है कि सिर्फ Node.js के लिए जारी किया गया था spider कहा जाता है नहीं है। यह वेबसाइट के HTML पृष्ठों को क्रॉल/इंडेक्स करने के लिए हुड के नीचे jQuery का उपयोग करता है। एपीआई और कॉन्फ़िगरेशन वास्तव में अच्छा है खासकर अगर आप पहले से ही jQuery जानते हैं।

var spider = require('../main'); 

spider() 
    .route('www.nytimes.com', '/pages/dining/index.html', function (window, $) { 
    $('a').spider(); 
    }) 
    .route('travel.nytimes.com', '*', function (window, $) { 
    $('a').spider(); 
    if (this.fromCache) return; 

    var article = { title: $('nyt_headline').text(), articleBody: '', photos: [] } 
    article.body = '' 
    $('div.articleBody').each(function() { 
     article.body += this.outerHTML; 
    }) 
    $('div#abColumn img').each(function() { 
     var p = $(this).attr('src'); 
     if (p.indexOf('ADS') === -1) { 
     article.photos.push(p); 
     } 
    }) 
    console.log(article); 
    }) 
    .route('dinersjournal.blogs.nytimes.com', '*', function (window, $) { 
    var article = {title: $('h1.entry-title').text()} 
    console.log($('div.entry-content').html()) 
    }) 
    .get('http://www.nytimes.com/pages/dining/index.html') 
    .log('info') 
    ; 
+0

स्पाइडर को काम करने के लिए सुबह बिताएं, इसे नवीनतम 0.6.6 नोड.जे.एस. में नहीं चलाया जा सकता है। – Kuroro

+0

यह एक अच्छी शुरुआत है, लेकिन ऐसा लगता है कि यह मेटा रीडायरेक्ट या दस्तावेज़ बेस ओवरराइड को संभालने में प्रतीत नहीं होता है, इसलिए यह कई साइटों को क्रॉल करने में विफल रहेगा। लेकिन यह नोड के लिए मैंने देखा सबसे अच्छा कार्यान्वयन है। और कुकीज़ के लिए समर्थन के साथ यह अन्य मुक्त स्रोत क्रॉलर से बेहतर है। –

संबंधित मुद्दे