কম্পিউটার

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


ওয়েব সাইটের মালিকরা /robots.txt ফাইল ব্যবহার করে ওয়েব রোবটকে তাদের সাইট সম্পর্কে নির্দেশনা দিতে; একে বলা হয় রোবট এক্সক্লুশন প্রোটোকল। এই ফাইলটি কম্পিউটার প্রোগ্রামগুলির জন্য একটি সাধারণ পাঠ্য-ভিত্তিক অ্যাক্সেস কন্ট্রোল সিস্টেম যা স্বয়ংক্রিয়ভাবে ওয়েব সংস্থানগুলি অ্যাক্সেস করে। এই ধরনের প্রোগ্রামগুলিকে মাকড়সা, ক্রলার ইত্যাদি বলা হয়৷ ফাইলটি ব্যবহারকারী এজেন্ট শনাক্তকারীকে নির্দিষ্ট করে এবং তারপরে এজেন্ট অ্যাক্সেস করতে পারে না এমন 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 ফাইল প্রকাশ করেছে৷

নিম্নলিখিত পদ্ধতিগুলি রোবটফাইলপার্সার ক্লাসে সংজ্ঞায়িত করা হয়েছে

set_url(url)

এই পদ্ধতিটি একটি robots.txt ফাইলের উল্লেখ করে URL সেট করে।

পড়ুন()

এই পদ্ধতিটি robots.txt ইউআরএল পড়ে এবং পার্সারকে ফিড করে।

পার্স()

এই পদ্ধতিটি লাইন আর্গুমেন্ট পার্স করে।

ক্যান_ফেচ()

যদি ব্যবহারকারীরা robots.txt-এ থাকা নিয়ম অনুসারে url আনতে সক্ষম হয় তবে এই পদ্ধতিটি True প্রদান করে।

mtime()

এই পদ্ধতিটি robots.txt ফাইলটি শেষবার আনার সময় ফেরত দেয়।

পরিবর্তিত()

এই পদ্ধতিটি robots.txt শেষবার আনার সময় সেট করে।

crawl_delay()

এই পদ্ধতিটি প্রশ্নে থাকা ব্যবহারকারীর জন্য ক্রল-বিলম্ব প্যারামিটার robots.txt এর মান প্রদান করে।

রিকোয়েস্ট_রেট()

এই পদ্ধতিটি রিকোয়েস্ট-রেট প্যারামিটারের বিষয়বস্তু একটি নামযুক্ত tuple RequestRate(অনুরোধ, সেকেন্ড) হিসাবে প্রদান করে।

উদাহরণ

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. পাইথন কোডের জন্য অপ্টিমাইজেশন টিপস?