آموزش ساخت وب‌اسکرپر ساده با پایتون: استخراج اطلاعات از وب در چند دقیقه

تاریخ: 2025-01-27 | نویسنده: علی نوری

وب‌اسکرپینگ (Web Scraping) فرآیندی است که در آن اطلاعات از صفحات وب به صورت خودکار استخراج می‌شود. این تکنیک در بسیاری از موارد کاربرد دارد، مانند جمع‌آوری داده‌های قیمت از فروشگاه‌های آنلاین، تحلیل داده‌های خبری، یا حتی بررسی رقبا. پایتون به دلیل داشتن کتابخانه‌های قدرتمند و سادگی در کدنویسی، یکی از بهترین زبان‌ها برای انجام وب‌اسکرپینگ است. در این مقاله در سایت کلاسیتو، به صورت گام‌به‌گام یاد می‌گیریم که چگونه با استفاده از پایتون و کتابخانه BeautifulSoup یک وب‌اسکرپر ساده بسازیم.

ساخت وب اسکرپر با پایتون

پیش‌نیازها

قبل از شروع، باید اطمینان حاصل کنید که موارد زیر روی سیستم شما نصب شده باشد:

  • پایتون (نسخه 3 یا بالاتر)
  • کتابخانه‌های BeautifulSoup و requests
  • یک ویرایشگر متن یا محیط برنامه‌نویسی، مانند VS Code یا PyCharm

اگر کتابخانه‌های مورد نیاز را نصب نکرده‌اید، می‌توانید با استفاده از دستور زیر آن‌ها را نصب کنید:

pip install beautifulsoup4 requests

گام اول: وارد کردن کتابخانه‌ها

ابتدا باید کتابخانه‌های مورد نیاز را وارد کنیم. یک فایل جدید با پسوند .py ایجاد کنید و کد زیر را در آن بنویسید:

import requests
from bs4 import BeautifulSoup

کتابخانه requests برای ارسال درخواست به وب‌سایت و دریافت محتوای آن استفاده می‌شود، و BeautifulSoup برای تحلیل و استخراج داده‌ها به کار می‌رود.

گام دوم: ارسال درخواست به وب‌سایت

در این مرحله، باید به وب‌سایتی که می‌خواهیم اطلاعات آن را استخراج کنیم، درخواست ارسال کنیم. به عنوان مثال، فرض کنید می‌خواهیم عنوان مقالات یک وبلاگ را دریافت کنیم:

url = "https://example.com"
response = requests.get(url)
if response.status_code == 200:
    print("درخواست موفقیت‌آمیز بود!")
else:
    print("خطایی رخ داده است.")

در این کد، URL وب‌سایت را مشخص کرده‌ایم و سپس با استفاده از requests.get یک درخواست ارسال کرده‌ایم. اگر کد وضعیت (status code) برابر با 200 باشد، یعنی درخواست موفقیت‌آمیز بوده است.

گام سوم: تحلیل HTML صفحه

پس از دریافت محتوای صفحه، باید آن را با استفاده از BeautifulSoup تحلیل کنیم:

soup = BeautifulSoup(response.content, "html.parser")
print(soup.prettify())

کد بالا محتوای HTML صفحه را به صورت ساختاریافته نمایش می‌دهد. این کار به ما کمک می‌کند تا عناصر مورد نظر خود را در صفحه پیدا کنیم.

گام چهارم: استخراج داده‌ها

فرض کنید می‌خواهیم عنوان‌های موجود در تگ‌های h2 را استخراج کنیم. می‌توانیم از کد زیر استفاده کنیم:

titles = soup.find_all("h2")
for title in titles:
    print(title.text)

در این کد، از تابع find_all برای یافتن تمام تگ‌های h2 استفاده کرده‌ایم و متن داخل هر تگ را چاپ کرده‌ایم.

گام پنجم: ذخیره داده‌ها

برای ذخیره داده‌ها در یک فایل، می‌توانیم از کد زیر استفاده کنیم:

with open("titles.txt", "w", encoding="utf-8") as file:
    for title in titles:
        file.write(title.text + "\n")

این کد تمام عنوان‌ها را در یک فایل متنی ذخیره می‌کند.

نکات ایمنی

هنگام انجام وب‌اسکرپینگ، باید به قوانین و ضوابط وب‌سایت‌ها احترام بگذارید. بسیاری از وب‌سایت‌ها در فایل robots.txt مشخص می‌کنند که چه بخش‌هایی از سایت قابل اسکرپ کردن هستند. همچنین، از ارسال درخواست‌های زیاد و پشت سر هم خودداری کنید، زیرا ممکن است IP شما مسدود شود.

نتیجه‌گیری

ساخت یک وب‌اسکرپر ساده با پایتون به شما امکان می‌دهد تا اطلاعات مورد نیاز خود را به صورت خودکار از وب‌سایت‌ها استخراج کنید. با استفاده از کتابخانه‌های BeautifulSoup و requests، شما می‌توانید داده‌های ارزشمند را به سرعت و به آسانی جمع‌آوری کنید. در این مقاله، اصول اولیه وب‌اسکرپینگ را یاد گرفتید. برای پروژه‌های پیچیده‌تر، می‌توانید از ابزارهایی مانند Scrapy استفاده کنید. چنانچه به دیگر مباحث در زمینه پاپتون علاقه داشته باشید میتوانید از بخش آموزش پایتون سایت کلاسیتو بازدید کنید و از ویدیوهای آموزشی با زیرنویس فارسی استفاده کنید.

برچسب‌ها:

بازگشت به لیست وبلاگ