ভূমিকা
urllib.request মডিউল দিয়ে URL অ্যাক্সেস ও ওপেন করা হয় (সাধারণত HTTP প্রোটোকল)। ইন্টারফেস সিম্পল, beginners-ফ্রেন্ডলি। urlopen ফাংশন বিভিন্ন প্রোটোকলে URL ফেচ করে।
শুরু করা
urllib লাইব্রেরি পাইথনের সাথে প্যাকেজড। ন रहनेলে PIP দিয়ে ইনস্টল:
pip install urllib
urllib.request চেক
সাধারণত ডেটা বা পেজ সোর্স কোড পড়তে ব্যবহৃত হয়। API থেকে ডেটা রিট্রিভের জন্য খুব উপকারী।
import urllib.request
request_url = urllib.request.urlopen('https://official-joke-api.appspot.com/random_ten')
কন্টেন্ট প্রিন্ট:
print(request_url.read())
নোট: বাইট ফরম্যাটে আউটপুট। প্লেইন টেক্সটের জন্য decode()।
print(request_url.read().decode())
API ডেটা সেভ করে পরে RegEx দিয়ে পার্স করা যায়।
উদাহরণ
import urllib.request
data = urllib.request.urlopen('https://official-joke-api.appspot.com/random_ten')
data = data.read().decode()
print(data)
file = open("content.txt", "w+")
file.write(data)
file.close()
নোট: FTP, HTTPS ইত্যাদি প্রোটোকলও urlopen দিয়ে একইভাবে অ্যাক্সেস করা যায়।
URL-এ ডেটা পাঠানো (POST রিকোয়েস্ট)
CGI বা HTTP POST রিকোয়েস্টের জন্য urllib.request + urllib.parse।
import urllib.parse
import urllib.request
url = 'https://www.google.com/cgi-bin/register.cgi'
values = {'name': 'S Vijay Balaji', 'language': 'Python'}
data = urllib.parse.urlencode(values)
data = data.encode('ascii')
req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as response:
the_page = response.read()
প্রদত্ত URL-এর সোর্স কোড প্রিন্ট হবে।
উপসংহার
urllib.request ইন্টারনেট রিসোর্স অ্যাক্সেস, API ডেটা পার্স, ওয়েব স্ক্রেপিং-এ খুব উপকারী। প্রজেক্ট উদাহরণ: https://github.com/SVijayB/Steam_WebScraper। ডকুমেন্টেশন: https://docs.python.org/3/library/urllib.request.html