ওয়েব থেকে ডেটা কালেকশন ডেটা সায়েন্সের চ্যালেঞ্জিং অংশ। ওয়েবে প্রচুর ডেটা রয়েছে, শুধু অটোমেশন দিয়ে এক্সট্র্যাক্ট করা দরকার। একাধিক HTML টেবিল থাকলে কপি-পেস্ট করা কষ্টসাধ্য। Python-এ `BeautifulSoup` এবং `csv` মডিউল ব্যবহার করে এটি অটোমেট করা যায়।
১. CSV ফাইল তৈরি করা (বেসিক)
import csv
# রাইট মোডে ফাইল খোলা (নেই তবে তৈরি হবে)
File = open('test.csv', 'w+', newline='')
Data = csv.writer(File)
# হেডার লিখা
Data.writerow(('Column1', 'Column2', 'Column3'))
# ডেটা লিখা
for i in range(20):
Data.writerow((i, i+1, i+2))
# ফাইল বন্ধ
File.close()
আউটপুট: `test.csv` ফাইল তৈরি হবে।

২. ওয়েব পেজ থেকে HTML টেবিল এক্সট্র্যাক্ট করে CSV-এ লিখা
import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = 'https://www.tutorialspoint.com/python/python_dictionary.htm'
# HTML ফেচ ও পার্স
html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')
# প্রথম টেবিল বের করা
table = soup.find_all('table')[0]
rows = table.find_all('tr')
# CSV-এ লিখা
File = open('my_html_data_to_csv.csv', 'wt+', newline='')
Data = csv.writer(File)
try:
for row in rows:
FilteredRow = []
for cell in row.find_all(['td', 'th']):
FilteredRow.append(cell.get_text(strip=True))
Data.writerow(FilteredRow)
finally:
File.close()
সম্পূর্ণ কোড (একসাথে)
import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = 'https://www.tutorialspoint.com/python/python_basic_syntax.htm'
html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')
table = soup.find_all('table')[0]
rows = table.find_all('tr')
File = open('my_html_data_to_csv.csv', 'wt+', newline='')
Data = csv.writer(File)
try:
for row in rows:
FilteredRow = []
for cell in row.find_all(['td', 'th']):
FilteredRow.append(cell.get_text(strip=True))
Data.writerow(FilteredRow)
finally:
File.close()

টিপস: `newline=''` প্যারামিটার উইন্ডোজে এক্সট্রা ব্ল্যাঙ্ক লাইন এড়াতে সাহায্য করে। `strip=True` দিয়ে এক্সট্রা হোয়াইটস্পেস সরানো যায়।