PhantomJS হল একটি headless browser (অর্থাৎ গ্রাফিক্যাল ইন্টারফেস ছাড়াই একটি ব্রাউজার), যা ওয়েব পেজের স্ক্রিনশট, পিডিএফ জেনারেশন, এবং পেজ রেন্ডারিংসহ বিভিন্ন ওয়েব অটোমেশন কাজ করতে ব্যবহৃত হয়। এটি ওয়েব স্ক্র্যাপিং, ওয়েব অ্যাপ্লিকেশনের টেস্টিং, এবং অন্যান্য কাজের জন্য খুবই উপকারী।
এখানে আলোচনা করা হবে কিভাবে HTTP Headers এবং Cookies অ্যাক্সেস করা যায় PhantomJS ব্যবহার করে।
HTTP Headers এবং Cookies অ্যাক্সেস করার জন্য PhantomJS ব্যবহার
PhantomJS-এ আপনি HTTP headers এবং cookies অ্যাক্সেস করতে পারেন বিভিন্ন ওয়েব পেজের রিকোয়েস্ট এবং রেসপন্স এর মাধ্যমে। নিচে উদাহরণসহ বিস্তারিত বর্ণনা করা হল:
1. HTTP Headers অ্যাক্সেস করা
PhantomJS ব্যবহার করে আপনি ওয়েব পেজ রিকোয়েস্টের সময় HTTP headers সেট করতে পারেন, অথবা পেজের রেসপন্সের HTTP headers অ্যাক্সেস করতে পারেন।
HTTP Headers সেট করা:
আপনি webPage.settings এর মাধ্যমে পেজ রিকোয়েস্টের HTTP headers সেট করতে পারেন।
Example:
var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36';
page.open('https://example.com', function(status) {
console.log("Page loaded with status: " + status);
phantom.exit();
});
এখানে, userAgent এর মাধ্যমে একটি কাস্টম HTTP header সেট করা হয়েছে।
HTTP Response Headers অ্যাক্সেস করা:
PhantomJS আপনাকে HTTP response headers অ্যাক্সেস করার সুযোগ দেয় onResourceReceived ইভেন্টের মাধ্যমে। আপনি এই ইভেন্টের মধ্যে রিসপন্সের হেডারগুলি অ্যাক্সেস করতে পারেন।
Example:
var page = require('webpage').create();
page.onResourceReceived = function(response) {
if (response.stage === 'end') {
console.log('Response Headers: ' + JSON.stringify(response.headers));
}
};
page.open('https://example.com', function(status) {
console.log("Page loaded with status: " + status);
phantom.exit();
});
এখানে, onResourceReceived ইভেন্টটি রেসপন্সের headers লগ করবে যখন পেজ সম্পূর্ণরূপে লোড হবে।
2. Cookies অ্যাক্সেস করা
PhantomJS এর মাধ্যমে আপনি কুকি ম্যানিপুলেশন এবং অ্যাক্সেস করতে পারেন। আপনি cookies পেতে, সেট করতে এবং মুছে ফেলতে পারেন।
Cookies পেতে:
PhantomJS-এ কুকি পাওয়া খুবই সহজ। আপনি page.cookies ব্যবহার করে বর্তমানে পেজে সেট করা কুকিগুলি অ্যাক্সেস করতে পারেন।
Example:
var page = require('webpage').create();
page.open('https://example.com', function(status) {
console.log("Page loaded with status: " + status);
// Get all cookies
var cookies = page.cookies;
console.log('Cookies:', JSON.stringify(cookies));
phantom.exit();
});
এখানে, page.cookies এর মাধ্যমে আপনি পেজে সেট করা সব কুকি অ্যাক্সেস করতে পারবেন।
Cookies সেট করা:
PhantomJS-এ কুকি সেট করার জন্য page.addCookie() মেথড ব্যবহার করা হয়।
Example:
var page = require('webpage').create();
page.open('https://example.com', function(status) {
console.log("Page loaded with status: " + status);
// Set a cookie
page.addCookie({
'name': 'myCookie',
'value': 'cookieValue',
'domain': 'example.com'
});
phantom.exit();
});
এখানে, page.addCookie() ব্যবহার করে একটি নতুন কুকি example.com ডোমেইনের জন্য সেট করা হয়েছে।
Cookies মুছে ফেলা:
PhantomJS-এ কুকি মুছে ফেলতে page.clearCookies() মেথড ব্যবহার করা হয়।
Example:
var page = require('webpage').create();
page.open('https://example.com', function(status) {
console.log("Page loaded with status: " + status);
// Clear all cookies
page.clearCookies();
phantom.exit();
});
এখানে, page.clearCookies() ব্যবহার করে সব কুকি মুছে ফেলা হয়েছে।
PhantomJS-এ HTTP headers এবং cookies অ্যাক্সেস এবং ম্যানিপুলেশন করার মাধ্যমে আপনি ওয়েব স্ক্র্যাপিং, অটোমেশন, এবং টেস্টিং এর জন্য খুবই শক্তিশালী টুল তৈরি করতে পারেন। HTTP headers ব্যবহার করে আপনি কাস্টম রিকোয়েস্ট হেডার পাঠাতে পারেন, এবং cookies ব্যবহার করে সেশন ম্যানেজমেন্ট এবং ইউজার নির্দিষ্ট ডেটা স্টোরেজ করতে পারেন। এগুলো PhantomJS এর মাধ্যমে ওয়েব পেজের মধ্যে গভীরভাবে ইন্টারঅ্যাক্ট করতে সহায়তা করে।
Read more