🧠 مقدمه: وب اسکرپینگ (Web Scraping) چیست و چرا اهمیت دارد؟
در دنیای امروز که دادهها به عنوان طلای قرن ۲۱ شناخته میشوند، استخراج اطلاعات از وبسایتها به یکی از مهارتهای کلیدی تبدیل شده است.
وب اسکرپینگ (Web Scraping) به فرایندی گفته میشود که در آن با استفاده از برنامههای خودکار، اطلاعات موردنیاز از صفحات وب جمعآوری و پردازش میشود.
کاربردهای وب اسکرپینگ:
- تحلیل بازار و رقبا
- جمعآوری اطلاعات محصولات برای فروشگاههای آنلاین
- بررسی قیمتها و تخفیفها
- مانیتورینگ اخبار و شبکههای اجتماعی
- تحقیقهای دانشگاهی و علمی
✅ به زبان ساده: وب اسکرپینگ یعنی “خودکارسازی جمعآوری دادهها از وب به جای اینکه دستی این کار رو انجام بدیم.”
🐍 چرا پایتون بهترین زبان برای وب اسکرپینگ است؟
پایتون (Python) به دلیل سادگی، قدرت و وجود کتابخانههای بسیار متنوع، بهترین انتخاب برای پروژههای وب اسکرپینگ محسوب میشود.
دلایل اصلی:
- کتابخانههای قدرتمند مثل BeautifulSoup، Requests، Selenium، Scrapy
- سادگی در کدنویسی و خوانایی بسیار بالا
- جامعهی کاربری بسیار فعال و وجود منابع آموزشی فراوان
- سازگاری با تکنولوژیهای مدرن مثل APIها، صفحات SPA (با جاوااسکریپت)
📚 اگر تازهکار هستید و دوست دارید با آموزشهای فارسی شروع کنید، پیشنهاد میکنم این منابع رو حتماً ببینید:
- دورهی “آموزش وب اسکرپینگ با پایتون” از فرادرس
- آموزشهای رایگان وبسایت مکتبخونه و راکت
- مقالات تخصصی وبسایت دیجیکالا مگ دربارهی تحلیل دادهها
⚙️ نصب ابزارها و آمادهسازی محیط برای وب اسکرپینگ
قبل از شروع به استخراج دادهها، باید محیط کاری خودتون رو آماده کنید. خوشبختانه پایتون این کار رو خیلی راحت کرده.
قدم اول: نصب پایتون
اول مطمئن بشید که پایتون روی سیستم شما نصبه.
برای بررسی این موضوع، ترمینال یا CMD رو باز کنید و این دستور رو بزنید:
python --version
یا برای بعضی سیستمها:
python3 --version
اگر نسخهی پایتون نمایش داده شد، یعنی نصب هست. اگر نه:
- میتونید آخرین نسخهی پایتون رو از وبسایت رسمی Python دانلود و نصب کنید.
- اگر دنبال آموزش نصب قدم به قدم به زبان فارسی هستید، دورهی “آموزش نصب و راهاندازی پایتون” در فرادرس کاملاً رایگانه و پیشنهاد میشه.
قدم دوم: نصب کتابخانههای مورد نیاز
برای شروع وب اسکرپینگ ساده، این کتابخانهها رو نیاز داریم:
نام کتابخانه | کاربرد |
---|---|
Requests | ارسال درخواست به سرور و دریافت اطلاعات |
BeautifulSoup | تجزیه (parse) و استخراج دادهها از HTML |
نصب این کتابخانهها خیلی سادهست:
pip install requests beautifulsoup4
🔵 اگر قصد دارید پروژههای پیشرفتهتر کار کنید (مثلاً صفحات جاوااسکریپتی یا سایتهای داینامیک)، میتونید اینها رو هم نصب کنید:
pip install selenium scrapy
📚 آموزش فارسی پیشنهادی:
- مقالهی “آموزش کامل BeautifulSoup در پایتون” در سایت راکت خیلی عالی و کاربردی نوشته شده.
- آموزشهای آپارات و یوتیوب فارسی هم برای یادگیری Selenium منابع رایگان خوبی دارن.
قدم سوم: نصب مرورگر و WebDriver (برای پروژههای داینامیک)
اگر قصد دارید با سایتهای داینامیکی کار کنید که دادههاشون توسط جاوااسکریپت بارگذاری میشه (مثل سایتهای خرید بلیط، فروشگاههای بزرگ)، به یک مرورگر + درایور نیاز دارید.
مثلاً برای کار با Google Chrome:
- مرورگر Chrome نصب باشه.
- ChromeDriver مناسب نسخهی مرورگرتون رو دانلود کنید.
- فایل اجرایی chromedriver رو به مسیر پروژه یا محیط PATH اضافه کنید.
(🔵 اگر نیاز داشتی راهنمای کامل دانلود و اتصال WebDriver به پروژه پایتون رو هم میتونم بنویسم!)
🧠 نکته حرفهای:
برای پروژههای واقعی، بهتره از محیط مجازی پایتون (Virtual Environment) استفاده کنید تا کتابخانههای پروژههاتون جداگانه مدیریت بشن.
ساخت محیط مجازی:
python -m venv env
فعالسازی:
- ویندوز:
.\env\Scripts\activate
- لینوکس/مک:
source env/bin/activate
🛠️ آماده شدیم برای ورود به دنیای واقعی وب اسکرپینگ!
🎯 اولین پروژه عملی وب اسکرپینگ با پایتون
پروژه: استخراج عنوان مقالات از سایت خبری
فرض کنیم میخوایم از سایت خبری زومیت (یا هر سایت خبری مشابه) عنوان مقالههای صفحه اصلی رو جمعآوری کنیم.
1. ارسال درخواست به سایت
اول باید صفحه سایت رو دریافت کنیم.
import requests
url = 'https://www.zoomit.ir/'
response = requests.get(url)
# بررسی وضعیت پاسخ
if response.status_code == 200:
print("دریافت صفحه موفق بود!")
else:
print("مشکلی در دریافت صفحه پیش آمد:", response.status_code)
📚 اگر تازه با requests
کار میکنید، میتونید آموزش جامع فارسیش رو توی دیجیکالا مگ یا مکتبخونه هم پیدا کنید.
2. تجزیه (Parse) کردن HTML صفحه
حالا باید HTML دریافتی رو آنالیز کنیم تا بتونیم اطلاعات مورد نظر رو استخراج کنیم.
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
html.parser
تجزیهکنندهی پیشفرض پایتون برای HTML هست.- اگر بخواید سرعت بالاتری داشته باشید، میتونید کتابخونهی
lxml
هم نصب کنید.
pip install lxml
و در کد:
soup = BeautifulSoup(response.text, 'lxml')
3. پیدا کردن عناوین مقالات
با ابزار Inspect مرورگر، ساختار HTML سایت رو بررسی میکنیم.
معمولاً عناوین مقالات داخل تگهای h3
یا a
هستند با کلاس خاص.
مثلاً توی زومیت:
titles = soup.find_all('h3', class_='ellipsis')
حالا همهی عنوانها رو چاپ کنیم:
for title in titles:
print(title.text.strip())
4. نسخه کامل پروژه در یکجا
import requests
from bs4 import BeautifulSoup
url = 'https://www.zoomit.ir/'
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
titles = soup.find_all('h3', class_='ellipsis')
for idx, title in enumerate(titles, 1):
print(f"{idx}. {title.text.strip()}")
else:
print("خطا در دریافت صفحه:", response.status_code)
✅ این اسکریپت، تمام عنوان مقالههای صفحه اصلی رو با شماره مرتب شده چاپ میکنه.
📚 منابع پیشنهادی آموزش بیشتر (فارسی):
- دورهی “وب اسکرپینگ با پایتون” از فرانش (خیلی پروژهمحور و کاربردیه)
- مقالهی “وب اسکرپینگ چیست؟ آموزش کامل Web Scraping” در مجله لرنکد
- فیلمهای رایگان آموزش BeautifulSoup در آپارات (توسط مدرسین مختلف)