1. Home
  2. Netherland
  3. Bot Django
  4. playwright Django

playwright Django

একদম সম্ভব। 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 ব্যাকগ্রাউন্ডে রান করা বেস্ট।

How can we help?