PhantomJS একটি headless browser বা "অপ্রকাশিত ব্রাউজার" যা JavaScript চালানো এবং ওয়েব পেজের স্ক্রিনশট নেওয়ার জন্য ব্যবহৃত হয়। এটি Webkit ভিত্তিক একটি ব্রাউজার, যা GUI ছাড়াই স্ক্রিপ্টের মাধ্যমে ওয়েব পেজের কার্যকারিতা পরীক্ষা করতে ব্যবহৃত হয়। PhantomJS ব্যবহারের মাধ্যমে আপনি headless browsing, automation, page rendering, screenshot capturing, এবং অন্যান্য ওয়েব টেস্টিং কাজগুলো করতে পারেন।
এখন, PhantomJS তে cookies persistency এবং expiration নিয়ে আলোচনা করা যাক।
PhantomJS তে Cookies Persistency এবং Expiration
Cookies Persistency এবং Expiration মূলত ব্রাউজারের মধ্যে cookies সংরক্ষণ এবং ম্যানেজমেন্টের সম্পর্কিত দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য। PhantomJS তে আপনি cookies পড়তে, লিখতে এবং কন্ট্রোল করতে পারেন এবং কিভাবে তারা expire হয়, সেটাও নিয়ন্ত্রণ করতে পারেন। এই সুবিধাগুলি আপনাকে সেশন ম্যানেজমেন্ট এবং ওয়েব স্ক্র্যাপিং এ সাহায্য করতে পারে।
Cookies Persistency in PhantomJS
PhantomJS তে cookies persistency নিশ্চিত করতে, আপনি cookies ফাইলের মাধ্যমে সেশনগুলির মধ্যে cookie সংরক্ষণ করতে পারেন। অর্থাৎ, যখন আপনি একবার cookies সেট করবেন, তখন তা পরবর্তী রানেও ব্যবহারযোগ্য হবে।
Cookie Persistency Example:
var page = require('webpage').create();
var fs = require('fs');
// Enable cookie persistence
phantom.cookiesEnabled = true;
// Set cookie
phantom.addCookie({
'name': 'myCookie',
'value': 'cookieValue',
'domain': 'example.com'
});
// Save cookies to a file
phantom.cookies = fs.read('cookies.json'); // Store cookies
page.open('http://example.com', function(status) {
// Take screenshot or perform any operations
page.render('screenshot.png');
phantom.exit();
});
Explanation:
phantom.addCookie(): এই ফাংশনটি একটি নতুন cookie সেট করতে ব্যবহৃত হয়।phantom.cookies: এটি cookies সংরক্ষণ করতে ব্যবহৃত হয়, এবং আপনি cookies ফাইল থেকে পুনরায় cookies লোড করতে পারবেন।
Persistent Cookies ব্যবহার করার মাধ্যমে, যখনই PhantomJS একটি পেজের মাধ্যমে ডেটা স্ক্র্যাপ বা টেস্ট করে, তখন cookies পরবর্তী রানের জন্য ধরে রাখা হয়।
Cookie Expiration Handling in PhantomJS
PhantomJS তে আপনি cookie expiration ম্যানেজ করতে পারেন, যা নির্ধারণ করে কবে cookie গুলি মুছে ফেলা হবে বা কার্যকরী হবে না।
Cookie Expiration Example:
var page = require('webpage').create();
// Set a cookie with expiration
phantom.addCookie({
'name': 'sessionCookie',
'value': 'sessionValue',
'domain': 'example.com',
'expires': (new Date()).getTime() + 3600000 // Expiry time: 1 hour
});
page.open('http://example.com', function(status) {
// Screenshot or perform any actions
page.render('screenshot.png');
phantom.exit();
});
Explanation:
expires: এই অপশনটি cookie এর expiration time নির্ধারণ করে। এটি timestamp আকারে উল্লেখ করতে হবে।- এখানে,
(new Date()).getTime() + 3600000মানে বর্তমানে সময় থেকে 1 ঘণ্টা পর cookie মুছে যাবে (3600000 মিলি সেকেন্ড মানে 1 ঘণ্টা)।
- এখানে,
Expiration Handling ব্যবহার করে, আপনি যখন cookies তৈরি করবেন তখন সেই cookies কখন মুছে যাবে বা আরও ব্যবহারযোগ্য থাকবে, তা নিয়ন্ত্রণ করতে পারেন।
PhantomJS তে Cookies নিয়ে আরও কিছু টিপস:
Reading Cookies: PhantomJS তে cookies পড়তে
page.cookiesব্যবহার করা যেতে পারে, যেটি সেসন শেষে cookies পড়তে সাহায্য করে।var cookies = page.cookies; console.log(cookies);Clearing Cookies: PhantomJS তে cookies মুছে ফেলতে
phantom.clearCookies()ব্যবহার করা হয়।phantom.clearCookies(); // Clears all cookiesAccessing Cookies in Web Pages: PhantomJS ব্রাউজারে যেকোনো পেজে cookies অ্যাক্সেস করার জন্য JavaScript কোডের মাধ্যমে cookies লোড করতে পারেন:
var cookies = page.evaluate(function() { return document.cookie; }); console.log(cookies);- Cookie Storage: PhantomJS তে cookies সংরক্ষণ এবং পুনরুদ্ধারের জন্য আপনি file system ব্যবহার করতে পারেন। উদাহরণস্বরূপ, cookies ফাইল থেকে cookies লোড বা ফাইল এ cookies সংরক্ষণ।
Best Practices for Cookies in PhantomJS:
- Use Cookies for Session Management: সেশন ম্যানেজমেন্টে cookies ব্যবহার করলে আপনি বিভিন্ন রিকোয়েস্টে ইউজার সেশন ট্র্যাক করতে পারেন এবং অটোমেটেড ওয়েব স্ক্র্যাপিং টাস্কে cookies ব্যবহার করতে পারেন।
- Set Expiration for Sensitive Data: কিছু sensitive data, যেমন লগইন সেশন বা ওয়েব স্ক্র্যাপিং-এর জন্য cookies তৈরি করলে সেগুলোর expiration সেট করুন যাতে অতিরিক্ত সিকিউরিটি বজায় থাকে।
- Clear Cookies Between Sessions: PhantomJS সেশন শেষে cookies মুছে ফেলুন, বিশেষ করে যদি আপনি সিকিউরিটি বা সেশন তথ্য নিয়ে কাজ করছেন।
PhantomJS তে cookies persistency এবং expiration ম্যানেজমেন্ট খুবই গুরুত্বপূর্ণ, বিশেষ করে web scraping, automated testing, এবং session management এর ক্ষেত্রে। আপনি cookie persistency নিশ্চিত করার জন্য cookies সংরক্ষণ করতে পারেন এবং cookie expiration ব্যবহার করে আপনি সেগুলি এক্সপায়ার হওয়ার সময় সেট করতে পারেন। PhantomJS তে cookies ব্যবস্থাপনা এবং cookie expiration handling এর মাধ্যমে আপনি আরও কার্যকরী এবং নিরাপদ ওয়েব স্ক্র্যাপিং বা টেস্টিং প্রক্রিয়া তৈরি করতে পারবেন।
Read more