আমাদের ওয়েব পেজটি দেখতে এমন

Write a caption
১. ওয়েবসাইট লিংক
২. পেজিনেশন আছে
৩. মাল্টিপল লিংক ওয়েব পেজ
প্রথমে আমাদের ওয়েবসাইট এ ভিজিট করতে হবে। যতগুলো পেজিনেশন আছে তার মধ্যে যত গুলো লিংক আছে সেগুলো রিকোয়েস্ট দিয়ে ভিজিট করতে হবে। প্রত্যেকটা পেজ স্ক্রাপ করে এক্সপোর্ট করবো।
from bs4 import BeautifulSoup
import requests
# রুট ওয়েবসাইটের URL
root = 'https://subslikescript.com'
website = f'{root}/movies_letter-A'
result = requests.get(website)
soup = BeautifulSoup(result.content, 'html.parser')
# প্রিন্ট(soup)
# পেজিনেশন
pagination = soup.find('ul', class_='pagination')
pages = pagination.find_all('li', class_='page-item')
lastpage = pages[-2].get_text()
print(lastpage)
# প্রতি পৃষ্ঠার জন্য লুপ চালানো
for page in range(1, int(lastpage) + 1)[:2]:
website = f'{root}/movies_letter-A?page={page}'
result = requests.get(website)
soup = BeautifulSoup(result.content, 'html.parser')
box = soup.find('article', class_="main-article")
links = []
# প্রতি লিঙ্কের জন্য লুপ চালানো
for link in box.find_all('a', href=True):
links.append(link['href'])
for link in links:
try:
website = f'{root}/{link}'
result = requests.get(website)
soup = BeautifulSoup(result.content, 'html.parser')
box = soup.find('article', class_="main-article")
title = box.find('h1').get_text()
transcript = box.find('div', class_='full-script').get_text()
# ফাইল তৈরি এবং লেখা
with open(f'{title}.txt', 'w', encoding='utf-8') as file:
file.write(transcript)
except:
print('--------- লিঙ্ক পাওয়া যায়নি ---------')
পোষ্টের টাইটেল দিয়ে ফাইলের নাম তৈরী করলে অনেক সময় পোষ্টের টাইটেল এ কিছু স্পেশাল অক্ষর থাকে তখন ফাইল তৈরিতে সমস্যা এই এই সমস্যা সমাধানের জন্য টাইটেল কে সেনিটাইজেশন করতে হয়। নিচের মত করবো
import string
def sanitize_file_name(title):
# অপ্রয়োজনীয় অক্ষরগুলি অপসারণ করতে একটি অনুবাদ টেবিল ডিফাইন করুন
# আমরা সব অক্ষর-সংখ্যা কর্তৃক রাখব এবং অন্যান্যগুলি আন্ডারস্কোরে পরিণত করব
allowed_characters = string.ascii_letters + string.digits + ' ' # অক্ষর-সংখ্যা এবং স্থান
translation_table = str.maketrans('', '', ''.join(c for c in string.printable if c not in allowed_characters))
# টাইটেল থেকে অপ্রয়োজনীয় অক্ষরগুলি অপসারণ করুন
sanitized_title = title.translate(translation_table)
# শীর্ষ এবং দ্রুত কারণে বস্তুগুলি অনুসরণ করে স্থান প্রতিস্থাপন করুন
sanitized_title = sanitized_title.strip().replace(' ', '_')
# ফাইল নামের সর্বাধিক দৈর্ঘ্যকে 100 অক্ষরে সীমাবদ্ধ করুন (আপনি এই মানটি সংশোধন করতে পারেন)
max_length = 100
sanitized_title = sanitized_title[:max_length]
return sanitized_title
# ফাইল নাম শোধন করুন
sanitized_title = sanitize_file_name(title)
# ফাইল তৈরি করুন এবং লেখা করুন
with open(f"data/a/{sanitized_title}.txt", 'w', encoding='utf-8') as file:
file.write(transcript)