यदि कोई वेबसाइट एक अच्छी एपीआई प्रदान करने में विफल रहती है, तो आपका अगला सबसे अच्छा विकल्प उसकी सामग्री को खंगालना है। चीयरियो, और Express.js, आपको ऐसा करने में मदद करेंगे।

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

आप आमतौर पर डेटा प्राप्त करने और उसकी निगरानी करने और उसमें भविष्य में होने वाले परिवर्तनों को ट्रैक करने के लिए एक वेब स्क्रैपर का उपयोग करेंगे।

चीयरियो का उपयोग करने से पहले जानने योग्य jQuery अवधारणाएँ

jQuery अस्तित्व में सबसे लोकप्रिय जावास्क्रिप्ट पैकेजों में से एक है। इसके साथ काम करना आसान हो जाता है दस्तावेज़ ऑब्जेक्ट मॉडल (DOM), घटनाओं, एनीमेशन और बहुत कुछ को संभालें। चीयरियो वेब स्क्रैपिंग के लिए एक पैकेज है जो jQuery के शीर्ष पर बनता है - समान सिंटैक्स और एपीआई साझा करता है, जबकि HTML या XML दस्तावेज़ों को पार्स करना आसान बनाता है।

इससे पहले कि आप सीखें कि चीयरियो का उपयोग कैसे करें, यह जानना महत्वपूर्ण है कि jQuery के साथ HTML तत्वों का चयन कैसे करें। शुक्र है, jQuery अधिकांश CSS3 चयनकर्ताओं का समर्थन करता है जिससे DOM से तत्वों को पकड़ना आसान हो जाता है। निम्नलिखित कोड पर एक नज़र डालें:

$("#container");

उपरोक्त कोड ब्लॉक में, jQuery के साथ तत्वों का चयन करता है पहचान "कंटेनर" का. नियमित पुरानी जावास्क्रिप्ट का उपयोग करते हुए एक समान कार्यान्वयन कुछ इस तरह दिखेगा:

document.querySelectorAll("#container");

पिछले दो कोड ब्लॉकों की तुलना करने पर, आप देख सकते हैं कि पहले वाले कोड ब्लॉक को बाद वाले की तुलना में पढ़ना बहुत आसान है। यही jQuery की खूबसूरती है.

jQuery में उपयोगी विधियाँ भी हैं जैसे मूलपाठ(), एचटीएमएल(), और भी बहुत कुछ जो HTML तत्वों में हेरफेर करना संभव बनाता है। ऐसी कई विधियाँ हैं जिनका उपयोग आप DOM को पार करने के लिए कर सकते हैं, जैसे अभिभावक(), भाई-बहन(), पिछला(), और अगला().

प्रत्येक() jQuery में विधि कई चीयरियो परियोजनाओं में बहुत लोकप्रिय है। यह आपको वस्तुओं और सरणियों पर पुनरावृति करने की अनुमति देता है। के लिए वाक्यविन्यास प्रत्येक() विधि इस प्रकार दिखती है:

$().each(<arrayorobject>, callback)

उपरोक्त कोड ब्लॉक में, वापस कॉल करें सरणी या ऑब्जेक्ट तर्क के प्रत्येक पुनरावृत्ति के लिए चलता है।

चीयरियो के साथ HTML लोड हो रहा है

चीयरियो के साथ HTML या XML डेटा को पार्स करना शुरू करने के लिए, आप इसका उपयोग कर सकते हैं चीयरियो.लोड() तरीका। इस उदाहरण पर एक नजर डालें:

const $ = cheerio.load('

Hello, world!

'
);
console.log($('h1').text())

यह कोड ब्लॉक jQuery का उपयोग करता है मूलपाठ() विधि की पाठ्य सामग्री को पुनः प्राप्त करती है एच 1 तत्व। के लिए पूर्ण वाक्यविन्यास भार() विधि इस प्रकार दिखती है:

load(content, options, mode)

संतुष्ट पैरामीटर आपके द्वारा पास किए गए वास्तविक HTML या XML डेटा को संदर्भित करता है भार() तरीका। विकल्प एक वैकल्पिक वस्तु है जो विधि के व्यवहार को संशोधित कर सकती है। डिफ़ॉल्ट रूप से, भार() विधि का परिचय देता है एचटीएमएल, सिर, और शरीर तत्व यदि वे गायब हैं। यदि आप इस व्यवहार को रोकना चाहते हैं, तो सुनिश्चित करें कि आपने सेट कर लिया है तरीका झूठ को.

चीयरियो के साथ हैकर समाचार को स्क्रैप करना

इस प्रोजेक्ट में प्रयुक्त कोड a में उपलब्ध है गिटहब रिपॉजिटरी और यह आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए निःशुल्क है।

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

सुनिश्चित करें कि आपके पास Node.js है और यह नोड पैकेज प्रबंधक आपकी मशीन पर चल रहा है। एक खाली फ़ोल्डर बनाएं, फिर a package.json फ़ाइल बनाएं, और फ़ाइल के अंदर निम्नलिखित JSON जोड़ें:

{
"name": "web-scraper",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon index.js"
},
"author": "",
"license": "MIT",
"dependencies": {
"cheerio": "^1.0.0-rc.12",
"express": "^4.18.2"
},
"devDependencies": {
"nodemon": "^3.0.1"
}
}

ऐसा करने के बाद, टर्मिनल खोलें और चलाएँ:

npm i

इससे आपको स्क्रेपर बनाने के लिए आवश्यक आवश्यक निर्भरताएँ स्थापित होनी चाहिए। इन पैकेजों में HTML को पार्स करने के लिए चीयरियो, सर्वर बनाने के लिए एक्सप्रेसजेएस, और एक विकास निर्भरता के रूप में शामिल हैं-नोडमॉन, एक उपयोगिता जो परिवर्तनों को सुनती है प्रोजेक्ट में और स्वचालित रूप से सर्वर को पुनरारंभ करता है।

चीज़ों को सेट करना और आवश्यक फ़ंक्शन बनाना

एक बनाएं सूचकांक.जे.एस फ़ाइल, और उस फ़ाइल में, "पोर्ट" नामक एक स्थिर चर बनाएं। तय करना पत्तन 5500 (या जो भी संख्या आप चुनें) तक, फिर क्रमशः चीयरियो और एक्सप्रेस पैकेज आयात करें।

const PORT = 5500;
const cheerio = require("cheerio");
const express = require("express");
const app = express();

इसके बाद, तीन चर परिभाषित करें: यूआरएल, एचटीएमएल, और ख़त्म हुआ पृष्ठ. तय करना यूआरएल हैकर समाचार URL पर.

const url = 'https://news.ycombinator.com';
let html;
let finishedPage;

अब एक फ़ंक्शन बनाएं जिसे कहा जाता है getHeader() यह कुछ HTML लौटाता है जिसे ब्राउज़र को प्रस्तुत करना चाहिए।

functiongetHeader(){
return`

एक और फ़ंक्शन बनाएं गेटस्क्रिप्ट() जो ब्राउज़र को चलाने के लिए कुछ जावास्क्रिप्ट लौटाता है। सुनिश्चित करें कि आप वेरिएबल में पास हो गए हैं प्रकार जब आप इसे कहते हैं तो एक तर्क के रूप में।

functiongetScript(type){
return`