এই নিবন্ধে, আমরা পাইথনে উপলব্ধ স্ক্র্যাপি মডিউল ব্যবহার করে ওয়েব স্ক্র্যাপিং কৌশল সম্পর্কে শিখব।
ওয়েব স্ক্র্যাপিং কি?
ওয়েব স্ক্র্যাপিং একটি ক্রলার/স্ক্যানারের সাহায্যে একটি ওয়েবসাইট থেকে ডেটা প্রাপ্ত/ পেতে ব্যবহার করা হয়। ওয়েব স্ক্র্যাপিং এমন একটি ওয়েব পৃষ্ঠা থেকে ডেটা বের করতে সুবিধাজনক যা একটি API-এর কার্যকারিতা অফার করে না। পাইথনে, বিউটিফুল স্যুপ, স্ক্র্যাপি এবং lxml নামে বিভিন্ন মডিউলের সাহায্যে ওয়েব স্ক্র্যাপিং করা যেতে পারে।
এখানে আমরা স্ক্র্যাপি মডিউল ব্যবহার করে ওয়েব স্ক্র্যাপিং নিয়ে আলোচনা করব।
এর জন্য, আমাদের প্রথমে স্ক্র্যাপি ইনস্টল করতে হবে .
টার্মিনাল বা কমান্ড প্রম্পটে টাইপ করুন -
>>> pip install Scrappy
স্ক্র্যাপি হিসাবে একটি কাঠামো যা আমাদের একটি ইনিশিয়ালাইজিং কমান্ড চালাতে হবে
>>> scrappy startproject tutpts
এখানে আমরা একটি ওয়েব ক্রলার তৈরি করি / মাকড়সা একটি ওয়েবসাইট থেকে ডেটা আনার জন্য৷
৷ক্রলার তৈরি করার জন্য আমরা tutptscraw.py নামে একটি পৃথক স্ক্রিপ্ট তৈরি করি এখানে আমরা বিষয়বস্তু নিষ্কাশনের জন্য একটি ক্লাস ঘোষণা করি। এখানে আমরা ওয়েব ক্রলারের নাম দিই এবং .requests ব্যবহার করে আমরা প্রদত্ত 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)
উপসংহার
এই টিউটোরিয়ালে, আমরা পাইথনে স্ক্র্যাপি মডিউল ব্যবহার করে ওয়েব ক্রলার বাস্তবায়ন সম্পর্কে শিখেছি