কম্পিউটার টিউটোরিয়াল

পাইথনে urllib.robotparser - robots.txt পার্সার


ওয়েবসাইট মালিকরা /robots.txt ফাইল ব্যবহার করে তাদের সাইট সম্পর্কে ওয়েব রোবটকে নির্দেশনা দেয়; এটিকে The Robots Exclusion Protocol বলা হয়। এই ফাইলটি একটি সিম্পল টেক্সট-বেসড অ্যাক্সেস কন্ট্রোল সিস্টেম কম্পিউটার প্রোগ্রামের জন্য যেগুলো অটোমেটিক্যালি ওয়েব রিসোর্স অ্যাক্সেস করে। এই প্রোগ্রামগুলোকে স্পাইডার, ক্রলার ইত্যাদি বলা হয়। ফাইলটি ইউজার এজেন্ট আইডেন্টিফায়ার স্পেসিফাই করে এবং তারপর সেই এজেন্ট যেসব URL অ্যাক্সেস করতে পারবে না তার লিস্ট দেয়।

উদাহরণস্বরূপ

# robots.txt
Sitemap: https://example.com/sitemap.xml
User-agent: *
Disallow: /admin/
Disallow: /downloads/
Disallow: /media/
Disallow: /static/

এই ফাইলটি সাধারণত আপনার ওয়েব সার্ভারের টপ-লেভেল ডিরেক্টরিতে রাখা হয়।

পাইথনের urllib.robotparser মডিউল RobotFileParser ক্লাস প্রদান করে। এটি উত্তর দেয় একটি নির্দিষ্ট ইউজার এজেন্ট কোনো URL ফেচ করতে পারবে কিনা সেই ওয়েব সাইটে যা robots.txt ফাইলটি পাবলিশ করেছে।

RobotFileParser ক্লাসে নিচের মেথডগুলো ডিফাইন করা রয়েছে:

set_url(url)

এই মেথড একটি robots.txt ফাইল রেফারিং URL সেট করে।

read()

এই মেথড robots.txt URL পড়ে এবং পার্সারের কাছে ফিড করে।

parse()

এই মেথড lines আর্গুমেন্ট পার্স করে।

can_fetch()

এই মেথড True রিটার্ন করে যদি ইউজারএজেন্ট robots.txt-এ থাকা নিয়ম অনুযায়ী url ফেচ করতে পারে।

mtime()

এই মেথড robots.txt ফাইলটি শেষবার কখন ফেচ করা হয়েছিল তার টাইম রিটার্ন করে।

modified()

এই মেথড robots.txt শেষবার কখন ফেচ করা হয়েছিল সেট করে।

crawl_delay()

এই মেথড robots.txt-এ থাকা Crawl-delay প্যারামিটারের ভ্যালু রিটার্ন করে প্রশ্নাধীন ইউজারএজেন্টের জন্য।

request_rate()

এই মেথড Request-rate প্যারামিটারের কন্টেন্ট একটি নেমড টাপল RequestRate(requests, seconds) হিসেবে রিটার্ন করে।

উদাহরণ

from urllib import parse
from urllib import robotparser
AGENT_NAME = 'PyMOTW'
URL_BASE = 'https://example.com/'
parser = robotparser.RobotFileParser()
parser.set_url(parse.urljoin(URL_BASE, 'robots.txt'))
parser.read()

  1. পাইথন প্রোগ্রাম: সিম্পল ইন্টারেস্ট ক্যালকুলেশন

  2. পাইথন প্রোগ্রাম: সিলেকশন সোর্ট অ্যালগরিদম

  3. উইন্ডোজে পাইথন প্রোগ্রামিং-এ IDE সমূহ

  4. পাইথন কোড অপ্টিমাইজেশনের ১১ টি কার্যকর টিপস