ওয়েব স্ক্র্যাপিং ওয়েবসাইট থেকে তথ্য আহরণের জন্য একটি অপরিহার্য কৌশল। আপনি যদি পাইথন এবং বিউটিফুলসুপের সাথে ডেটা স্ক্র্যাপ করতে শিখতে চান তবে এই নির্দেশিকাটি আপনাকে ধাপে ধাপে প্রক্রিয়াটির মাধ্যমে নিয়ে যাবে। এই নিবন্ধের শেষে, আপনি জানতে পারবেন কিভাবে একাধিক পৃষ্ঠা স্ক্র্যাপ করতে হয়, গতিশীল বিষয়বস্তু পরিচালনা করতে হয় এবং আপনার আইপি ঠিকানা প্রকাশ না করার জন্য প্রক্সি সার্ভার ব্যবহার করতে হয়। এর ডান মধ্যে ডুব দেওয়া যাক!
সুচিপত্র
1. ওয়েব স্ক্র্যাপিং এর ভূমিকা
ওয়েব স্ক্র্যাপিং এর মধ্যে স্বয়ংক্রিয় স্ক্রিপ্ট ব্যবহার করে ওয়েবসাইট থেকে ডেটা বের করা জড়িত। এই কৌশলটি বিভিন্ন উদ্দেশ্যে ব্যাপকভাবে ব্যবহৃত হয়, যেমন ডেটা বিশ্লেষণ, মূল্য নিরীক্ষণ এবং বিষয়বস্তু একত্রিতকরণ। Python, এর শক্তিশালী লাইব্রেরি যেমন BeautifulSoup এবং Requests সহ, ওয়েব স্ক্র্যাপিংকে সহজ এবং দক্ষ করে তোলে।
2. আপনার পরিবেশ সেট আপ করা
আমরা স্ক্র্যাপিং শুরু করার আগে, আমাদের উন্নয়ন পরিবেশ সেট আপ করতে হবে। এর মধ্যে প্রয়োজনীয় লাইব্রেরি ইনস্টল করা জড়িত। আপনি কিভাবে এটি করতে পারেন তা এখানে:
pip install requests beautifulsoup4 pandas
এই গ্রন্থাগারগুলি অপরিহার্য:
- অনুরোধ: ওয়েব পেজ এর বিষয়বস্তু আনয়ন করতে.
- সুন্দর স্যুপ: HTML নথি থেকে ডেটা পার্স এবং এক্সট্রাক্ট করতে।
- পান্ডা: তথ্য সংরক্ষণ এবং ম্যানিপুলেট করতে।
3. সুন্দর স্যুপ দিয়ে একটি ওয়েবসাইট স্ক্র্যাপ করা
একবার আপনার লাইব্রেরি ইনস্টল হয়ে গেলে, আপনি আপনার স্ক্র্যাপিং স্ক্রিপ্ট লেখা শুরু করতে পারেন। বইয়ের তালিকা করে এমন একটি ওয়েবসাইট স্ক্র্যাপ করার উদাহরণ নেওয়া যাক।
লাইব্রেরি আমদানি করা হচ্ছে
import requests
from bs4 import BeautifulSoup
import pandas as pd
ওয়েব পেজ আনা হচ্ছে
url = "http://books.toscrape.com/"
response = requests.get(url)
html_content = response.text
HTML পার্সিং
soup = BeautifulSoup(html_content, 'html.parser')
4. একাধিক পৃষ্ঠা পরিচালনা করা
একাধিক পৃষ্ঠা স্ক্র্যাপ করতে, আপনাকে পৃষ্ঠাগুলি লুপ করতে হবে এবং প্রতিটি থেকে ডেটা আনতে হবে। আপনি কিভাবে এটি করতে পারেন তা এখানে:
পৃষ্ঠাগুলির মাধ্যমে লুপিং
base_url = "http://books.toscrape.com/catalogue/page-{}.html"
data = []
for page_num in range(1, 51): # Assuming there are 50 pages
response = requests.get(base_url.format(page_num))
soup = BeautifulSoup(response.text, 'html.parser')
# Extract book data here and append to data list
books = soup.find_all('article', class_='product_pod')
for book in books:
title = book.h3.a['title']
price = book.find('p', class_='price_color').text
stock = book.find('p', class_='instock availability').text.strip()
data.append({
"Title": title,
"Price": price,
"Stock": stock
})
5. আইপি ব্যান এড়াতে প্রক্সি ব্যবহার করা
স্ক্র্যাপিং প্রতিরোধ করার জন্য ওয়েবসাইটগুলি প্রায়ই আইপি ঠিকানাগুলি ট্র্যাক করে। একটি প্রক্সি সার্ভার ব্যবহার করে আপনার IP ঠিকানা মাস্ক করে এই সমস্যাটি এড়াতে সাহায্য করতে পারে৷
একটি প্রক্সি সেট আপ করা হচ্ছে
proxies = {
"http": "http://your_proxy_server:port",
"https": "http://your_proxy_server:port",
}
response = requests.get(url, proxies=proxies)
একটি প্রক্সি ব্যবহার করে, আপনার সমস্ত ট্র্যাফিক অন্য সার্ভারের মাধ্যমে রুট করা হয়, লক্ষ্য ওয়েবসাইটটিকে আপনার আইপি ঠিকানা সনাক্ত করতে বাধা দেয়।
6. CSV এবং এক্সেল ফর্ম্যাটে ডেটা সংরক্ষণ করা
ডেটা স্ক্র্যাপ করার পরে, আপনি আরও বিশ্লেষণের জন্য এটি সংরক্ষণ করতে চাইবেন। আপনি CSV বা এক্সেল ফর্ম্যাটে ডেটা সংরক্ষণ করতে পান্ডাস ব্যবহার করতে পারেন।
CSV-তে ডেটা সংরক্ষণ করা হচ্ছে
df = pd.DataFrame(data)
df.to_csv('books.csv', index=False)
Excel এ ডেটা সংরক্ষণ করা হচ্ছে
df.to_excel('books.xlsx', index=False)
স্ক্র্যাপড ডেটার নমুনা টেবিল
শিরোনাম | দাম | স্টক |
---|---|---|
গ্র্যান্ড ডিজাইন | £13.76 | স্টকে |
রাইতে ক্যাচার | £5.95 | স্টকে |
সাহসী নতুন বিশ্ব | £39.74 | স্টকে |
7. উপসংহার
পাইথন এবং বিউটিফুলসুপের সাথে ওয়েব স্ক্র্যাপিং ওয়েবসাইটগুলি থেকে ডেটা বের করার জন্য একটি শক্তিশালী কৌশল। এই নির্দেশিকা অনুসরণ করে, আপনি একাধিক পৃষ্ঠা স্ক্র্যাপ করতে, গতিশীল বিষয়বস্তু পরিচালনা করতে এবং আইপি নিষেধাজ্ঞা এড়াতে প্রক্সি ব্যবহার করতে সক্ষম হবেন। স্ক্র্যাপ করার আগে সর্বদা ওয়েবসাইটের পরিষেবার শর্তাদি পরীক্ষা করতে মনে রাখবেন এবং দায়িত্বের সাথে ডেটা ব্যবহার করুন৷