আগে আমরা প্রজেক্ট বানিয়েছিলাম এবার মডেল বানিয়ে বাকি কাজগুলো করবো
myapp/models.py
from django.db import models
class ScrapedData(models.Model):
title = models.CharField(max_length=255,default="")
description = models.TextField(default="")
def __str__(self):
return self.title
Migrate Database
python manage.py makemigrations
python manage.py migrate
myapp/views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import ScrapedData
import requests
from bs4 import BeautifulSoup
# Create your views here.
def scrape_and_save(request):
# URL ডিফাইন করুন
url = "https://subslikescript.com/movie/Titanic-120338"
# URL এর ডাটা নিতে HTTP রিকুয়েস্ট পাঠান
response = requests.get(url)
# যদি সার্ভার কোড ২০০ (সাক্সেস) হয়, তাদের সাথে কাজ করা যাবে
if response.status_code == 200:
# HTML কনটেন্ট থেকে প্রস্তুত করুন
soup = BeautifulSoup(response.content, 'html.parser')
# 'article' এলিমেন্ট খুজুন যা 'main-article' ক্লাস থাকবে
article_element = soup.find('article', class_='main-article')
# যদি 'article' এলিমেন্ট পাওয়া যায়
if article_element:
# 'h1' এলিমেন্ট থেকে টাইটেল খুজুন এবং ফরম্যাট করুন
title_element = article_element.find('h1').text.strip()
# 'p' এলিমেন্ট থেকে ডেসক্রিপশন খুজুন এবং ফরম্যাট করুন
description_element = article_element.find("p", class_='plot').text.strip()
# ScrapedData মডেলে টাইটেলের উপরে নির্ভর করে মুভি অবজেক্ট তৈরি করুন
# যদি ইতিমধ্যে থাকে, তাদের সাথে কাজ করুন বা নতুন তৈরি করুন
movie, created = ScrapedData.objects.get_or_create(title=title_element, defaults={'description': description_element})
# সফলভাবে স্ক্র্যাপ করে সংরক্ষণ হয়েছে এবং প্রতিক্রিয়া পাঠান
return HttpResponse(f"Scraped and saved: {movie.title}")
# সাইটটি স্ক্র্যাপ করতে ব্যর্থ হলে একটি প্রতিক্রিয়া পাঠান
return HttpResponse("Failed to scrape the website.")
myapp/urls.py
from django.urls import path
from .views import scrape_and_save
urlpatterns = [
path('scrape/', scrape_and_save, name='scrape_and_save'),
]