इस लेख में, हम पाइथन में उपलब्ध स्क्रैपी मॉड्यूल का उपयोग करके वेब स्क्रैपिंग तकनीक के बारे में जानेंगे।
वेब स्क्रैपिंग क्या है?
वेब स्क्रैपिंग का उपयोग क्रॉलर/स्कैनर की सहायता से किसी वेबसाइट से डेटा प्राप्त करने/प्राप्त करने के लिए किया जाता है। वेब स्क्रैपिंग एक ऐसे वेब पेज से डेटा निकालने के लिए काम आता है जो एपीआई की कार्यक्षमता प्रदान नहीं करता है। पायथन में, वेब स्क्रैपिंग को विभिन्न मॉड्यूल जैसे ब्यूटीफुल सूप, स्क्रैपी और एलएक्सएमएल की मदद से किया जा सकता है।
यहां हम स्क्रैपी मॉड्यूल का उपयोग करके वेब स्क्रैपिंग पर चर्चा करेंगे।
उसके लिए, हमें सबसे पहले स्क्रैपी इंस्टॉल करना होगा।
टर्मिनल या कमांड प्रॉम्प्ट में टाइप करें
>>> पिप इंस्टाल स्क्रैपी
स्क्रैपी . के रूप में एक फ्रेमवर्क है जिसे हमें एक इनिशियलाइज़िंग कमांड चलाने की आवश्यकता है
>>> स्क्रैपी स्टार्ट प्रोजेक्ट टुप्ट्स
यहां हम एक वेब क्रॉलर . बनाते हैं / मकड़ी एक वेबसाइट से डेटा लाने के लिए।
क्रॉलर बनाने के लिए हम tutptscraw.py . नामक एक अलग स्क्रिप्ट बनाते हैं यहां हम सामग्री के निष्कर्षण के लिए एक वर्ग घोषित करते हैं। यहां हम वेब क्रॉलर का नाम देते हैं और .request का उपयोग करके हम दिए गए URL से डेटा प्राप्त करते हैं।
जेनरेटर फ़ंक्शंस का उपयोग किया जाता है जो प्राप्त डेटा उत्पन्न करता है।
उदाहरण
import scrapy class ExtractUrls(scrapy.Spider): name = "fetch" # generator Function def start_requests(self): # enter the URL urls = ['https://www.tutorialspoint.com/index.htm/', ] for url in urls: yield scrapy.Request(url = url, callback = self.parse)
यहां एंकर टैग के भीतर एनकैप्सुलेटेड सभी डेटा रिक्वेस्ट फंक्शन का उपयोग करके प्राप्त किया जाता है। चूंकि स्क्रैपी एक छोटा ढांचा है, इसलिए हम सभी कार्यात्मकताओं को स्क्रैपी शेल में चलाते हैं।
स्क्रैप शेल को सक्रिय करने के लिए हम निम्नलिखित कमांड का उपयोग करते हैं
स्क्रैपी शेलhttps://www.tutorialspoint.com/index.htm/
अब हम चयनकर्ताओं यानी CSS या xpaths का उपयोग करके एंकर टैग से डेटा प्राप्त करते हैं
response.css('a') links = response.css('a').extract()
वेब पेज पर उपलब्ध सभी लिंक प्राप्त करने के लिए हम एक पार्स विधि बनाते हैं। स्क्रैपी आंतरिक रूप से पहले देखे गए URL को बायपास करता है जिससे परिणामों के प्रदर्शन के दौरान रेंडरिंग समय कम हो जाता है।
import scrapy class ExtractUrls(scrapy.Spider): name = "fetch" # generator Function def start_requests(self): # enter the URL urls = ['https://www.tutorialspoint.com/index.htm/', ] for url in urls: yield scrapy.Request(url = url, callback = self.parse) # Parse function def parse(self, response): title = response.css('title::text').extract_first() # Get anchor tags links = response.css('a::attr(href)').extract() for link in links: yield { 'title': title, 'links': link } if 'tutorialspoint' in link: yield scrapy.Request(url = link, callback = self.parse)
निष्कर्ष
इस ट्यूटोरियल में, हमने पाइथन में स्क्रैपी मॉड्यूल का उपयोग करके वेब क्रॉलर के कार्यान्वयन के बारे में सीखा