কম্পিউটার

স্ক্র্যাপির সাথে পাইথনে ওয়েব স্ক্র্যাপিং বাস্তবায়ন করা


এই নিবন্ধে, আমরা পাইথনে উপলব্ধ স্ক্র্যাপি মডিউল ব্যবহার করে ওয়েব স্ক্র্যাপিং কৌশল সম্পর্কে শিখব।

ওয়েব স্ক্র্যাপিং কি?

ওয়েব স্ক্র্যাপিং একটি ক্রলার/স্ক্যানারের সাহায্যে একটি ওয়েবসাইট থেকে ডেটা প্রাপ্ত/ পেতে ব্যবহার করা হয়। ওয়েব স্ক্র্যাপিং এমন একটি ওয়েব পৃষ্ঠা থেকে ডেটা বের করতে সুবিধাজনক যা একটি 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)

উপসংহার

এই টিউটোরিয়ালে, আমরা পাইথনে স্ক্র্যাপি মডিউল ব্যবহার করে ওয়েব ক্রলার বাস্তবায়ন সম্পর্কে শিখেছি


  1. পাইথনে lxml ব্যবহার করে ওয়েব স্ক্র্যাপিং বাস্তবায়ন করছেন?

  2. পাইথনে ফটোমোজাইক প্রয়োগ করা

  3. ওয়েব স্ক্র্যাপিংয়ের জন্য পাইথন সরঞ্জাম

  4. 31 সেরা ওয়েব স্ক্র্যাপিং টুল