একদম সম্ভব। Puppeteer Node.js এর জন্য হলেও Python এ তার সমতুল্য লাইব্রেরি হচ্ছে 👉 Playwright বা Selenium। তোমার কাজের জন্য Playwright সবচেয়ে পারফেক্ট এবং Puppeteer এর মতই কাজ করে।
✅ Django থেকে বাটনে ক্লিক করে Python স্ক্রিপ্ট রান করে Google সার্চ করার সম্পূর্ণ প্রজেক্ট গাইড
🔥 Step 1: প্রয়োজনীয় লাইব্রেরি ইন্সটল
pip install playwright
pip install pandas openpyxl
playwright install
🔥 Step 2: স্ক্রিপ্ট তৈরি (google_search.py নামে)
from playwright.sync_api import sync_playwright
import pandas as pd
import os
def google_search_and_save(query):
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # headless=True করলে ব্রাউজার খুলবে না
page = browser.new_page()
page.goto('https://www.google.com')
# Accept cookies if popup shows (optional)
try:
page.click('button:has-text("Accept all")')
except:
pass
page.fill('input[name="q"]', query)
page.keyboard.press('Enter')
page.wait_for_timeout(3000) # ৩ সেকেন্ড ওয়েট
# Search result collect
results = page.query_selector_all('h3')
data = []
for idx, result in enumerate(results):
title = result.inner_text()
link_element = result.evaluate_handle('node => node.parentElement')
link = link_element.get_attribute('href')
data.append({'Title': title, 'Link': link})
print(f"{idx+1}. {title} => {link}")
browser.close()
# Save to Excel
df = pd.DataFrame(data)
output_path = os.path.join(os.path.dirname(__file__), 'search_results.xlsx')
df.to_excel(output_path, index=False)
return output_path
🔥 Step 3: Django View তৈরি
# views.py
from django.http import JsonResponse
from django.views import View
from .google_search import google_search_and_save
class RunSearchScriptView(View):
def get(self, request):
try:
query = request.GET.get('q', 'OpenAI ChatGPT')
file_path = google_search_and_save(query)
return JsonResponse({'status': 'success', 'file': file_path})
except Exception as e:
return JsonResponse({'status': 'error', 'message': str(e)})
🔥 Step 4: URL যুক্ত করুন
# urls.py
from django.urls import path
from .views import RunSearchScriptView
urlpatterns = [
path('run-search/', RunSearchScriptView.as_view(), name='run_search'),
]
🔥 Step 5: HTML বাটন যুক্ত করুন
<button id="run-search"
class="px-6 py-2 bg-blue-600 text-white rounded hover:bg-blue-700">
Run Google Search
</button>
<script>
document.getElementById('run-search').addEventListener('click', function() {
fetch('/run-search/?q=Django Python Automation')
.then(response => response.json())
.then(data => alert(data.status + ": " + (data.file || data.message)))
.catch(error => alert('Error: ' + error));
});
</script>
✅ কাজের ফলাফল:
- ব্রাউজার খুলে গুগলে সার্চ করবে।
- সার্চ রেজাল্ট
search_results.xlsxফাইলে সংরক্ষণ করবে। - Django এর পেজ থেকে বাটনে ক্লিক করে এটি ট্রিগার হবে।
⚠️ গুরুত্বপূর্ণ:
- VPS বা সার্ভারে রান করলে
headless=Trueকরতে হবে। - সার্ভারে Chrome ইনস্টল থাকতে হবে (Playwright নিজেই ডাউনলোড করে নেয়)।
- বড় কাজ হলে Celery ব্যাকগ্রাউন্ডে রান করা বেস্ট।