Agent 4: Competitor Analysis Agent
১. এই এজেন্ট কী কাজ করবে?
ধরুন, আপনার একটি ই-কমার্স ব্যবসা আছে। আপনি চান আপনার প্রতিযোগী কোম্পানি নতুন কোনো প্রোডাক্ট লঞ্চ করলে আপনি যেন সাথে সাথে জানতে পারেন। এই এজেন্ট প্রতিদিন আপনার প্রতিযোগীর ওয়েবসাইট চেক করবে এবং গতকালের সাথে আজকের ডেটা মিলিয়ে দেখবে। নতুন কিছু পেলেই সে আপনাকে জানাবে!
২. কী কী টুলস এবং লাইব্রেরি লাগবে?
requestsএবংbeautifulsoup4: ডেটা স্ক্র্যাপ করার জন্য।json: আগের দিনের ডেটা সেভ করে রাখার জন্য (যাতে আজকের সাথে মেলাতে পারে)।
৩. এ টু জেড কোড (A to Z Code)
নিচের কোডটি agent_competitor.py নামে সেভ করুন।
import requests
from bs4 import BeautifulSoup
import json
import os
class CompetitorAnalysisAgent:
def __init__(self, competitor_url):
self.url = competitor_url
self.data_file = "previous_products.json"
def fetch_current_products(self):
print("[Agent] প্রতিযোগীর ওয়েবসাইট চেক করছি...")
response = requests.get(self.url)
soup = BeautifulSoup(response.text, "html.parser")
current_products = []
# ধরি প্রোডাক্টের নাম h3 ট্যাগের ভেতরে a ট্যাগে থাকে (books.toscrape এর মত)
items = soup.find_all("h3")
for item in items:
title = item.find("a")["title"] if item.find("a").has_attr("title") else item.get_text()
current_products.append(title)
return current_products
def analyze_changes(self, current_products):
# যদি আগের ডেটা ফাইল না থাকে (প্রথমবার রান করার সময়)
if not os.path.exists(self.data_file):
print("[Agent] এটি প্রথম রান। সব প্রোডাক্ট সেভ করে রাখছি...")
self.save_data(current_products)
return
# আগের ডেটা ফাইল থেকে পড়া
with open(self.data_file, "r") as f:
previous_products = json.load(f)
# নতুন প্রোডাক্ট খুঁজে বের করা (যা বর্তমানে আছে কিন্তু আগে ছিল না)
new_items = set(current_products) - set(previous_products)
# বাদ দেওয়া প্রোডাক্ট খুঁজে বের করা
removed_items = set(previous_products) - set(current_products)
if new_items:
print(f"[Agent] ⚠️ অ্যালার্ট! প্রতিযোগী নতুন প্রোডাক্ট এনেছে: {new_items}")
if removed_items:
print(f"[Agent] প্রতিযোগী কিছু প্রোডাক্ট সরিয়ে ফেলেছে: {removed_items}")
if not new_items and not removed_items:
print("[Agent] প্রতিযোগীর ওয়েবসাইটে কোনো পরিবর্তন নেই।")
# আজকের ডেটা সেভ করে রাখা আগামীকালের জন্য
self.save_data(current_products)
def save_data(self, data):
with open(self.data_file, "w") as f:
json.dump(data, f)
if __name__ == "__main__":
competitor_url = "https://books.toscrape.com/"
agent = CompetitorAnalysisAgent(competitor_url)
current_data = agent.fetch_current_products()
agent.analyze_changes(current_data)
৪. কীভাবে এটি আরও অ্যাডভান্সড করবেন?
- এটি Windows এর Task Scheduler বা Linux এর Cron Job এ সেট করে দিতে পারেন, যেন আপনাকে কোড রান না করতে হয়; প্রতিদিন সকাল ৮টায় পিসি অন করলেই এটি একা একা চেক করে জানাবে।