Scrapy

فریمورک قدرتمند وب‌اسکرپینگ با پایتون

Scrapy یک فریمورک متن‌باز و سریع برای استخراج داده از وب‌سایت‌هاست. با معماری غیرهمزمان (async)، سیستم میان‌افزار (middleware)، و پایپ‌لاین‌های پردازش داده، Scrapy ابزار حرفه‌ای‌ها برای کراول و اسکرپ وب است.

spider.py
import scrapy

class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = ['https://quotes.toscrape.com']

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                'text': quote.css('span.text::text').get(),
                'author': quote.css('small.author::text').get(),
            }

Scrapy چیست؟

Scrapy یک فریمورک کامل برای وب‌اسکرپینگ و خزیدن در وب است که با پایتون نوشته شده. از سال ۲۰۰۸ توسعه یافته و امروزه یکی از پرکاربردترین ابزارها در حوزه جمع‌آوری داده است.

سریع و کارآمد

Scrapy به‌صورت ناهمزمان (async) درخواست‌ها را مدیریت می‌کند و می‌تواند هزاران صفحه را در دقیقه پردازش کند.

🔧

معماری ماژولار

با Spider، Pipeline، Middleware و Selector هر بخش از فرآیند اسکرپ را جداگانه کنترل و سفارشی‌سازی کنید.

🎯

انتخابگرهای قدرتمند

از CSS Selector و XPath برای استخراج دقیق عناصر HTML استفاده کنید. XPath انعطاف‌پذیری بیشتری برای ساختارهای پیچیده دارد.

💾

خروجی‌های متنوع

داده‌های استخراج‌شده را به JSON، CSV، XML یا پایگاه‌داده‌های MongoDB و PostgreSQL صادر کنید.

🔄

مدیریت درخواست

سیستم داخلی Scrapy صف درخواست‌ها، تلاش مجدد، تأخیر و رعایت robots.txt را به‌صورت خودکار مدیریت می‌کند.

🌐

اکوسیستم گسترده

افزونه‌هایی مثل Scrapy-Splash، Scrapy-Playwright و Scrapy-Redis قابلیت‌های پیشرفته‌تری مثل رندر JavaScript و توزیع‌شده را فراهم می‌کنند.

از کجا شروع کنیم؟

دو راهنمای جامع فارسی برای یادگیری XPath و Scrapy — از مبتدی تا پیشرفته.