پروژه Scrapy برای دریافت قیمت طلا و دلار در ایران

در این پروژه، از Scrapy برای استخراج قیمت لحظه‌ای طلا و دلار از یک وب‌سایت ایرانی استفاده می‌کنیم. این خزنده به‌صورت خودکار قیمت‌ها را از صفحه موردنظر دریافت کرده و ذخیره می‌کند.

۱. نصب پیش‌نیازها

ابتدا Scrapy را نصب کنید. اگر قبلاً نصب نکرده‌اید، دستور زیر را در CMD اجرا کنید:

pip install scrapy

۲. ایجاد پروژه Scrapy

یک پروژه جدید با نام gold_dollar_scraper ایجاد کنید:

scrapy startproject gold_dollar_scraper

سپس وارد پوشه پروژه شوید:

cd gold_dollar_scraper

۳. ایجاد اسپایدر برای دریافت قیمت‌ها

یک اسپایدر جدید با نام currency_spider ایجاد کنید:

scrapy genspider currency_spider example.com

🔹 نکته: در اینجا example.com یک نمونه است. شما باید آدرس واقعی یک وب‌سایت معتبر ایرانی که قیمت‌ها را نمایش می‌دهد جایگزین کنید. مثلاً می‌توانید از سایت‌  tgju.org استفاده کنید.

فایل currency_spider.py در مسیر gold_dollar_scraper/spiders/ را باز کنید و کد زیر را جایگزین کنید:

import scrapy

class CurrencySpider(scrapy.Spider):
    name = "currency_spider"
    allowed_domains = ["tgju.org"]  # نام دامنه وب‌سایت هدف
    start_urls = ["https://www.tgju.org/"]  # لینک صفحه‌ای که قیمت‌ها در آن قرار دارند

    def parse(self, response):
        yield {
            "gold_price": response.css("td[data-market-row='geram18'] .nf::text").get(),  # قیمت طلا
            "dollar_price": response.css("td[data-market-row='price_dollar_rl'] .nf::text").get(),  # قیمت دلار
        }

۴. اجرای اسپایدر و دریافت قیمت‌ها

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

scrapy crawl currency_spider

همچنین می‌توانید خروجی را در یک فایل JSON ذخیره کنید:

scrapy crawl currency_spider -o prices.json

۵. نتیجه‌گیری

✅ در این پروژه، قیمت دلار و طلا از یک وب‌سایت ایرانی استخراج شد.
✅ داده‌ها به‌صورت خودکار از صفحه وب دریافت و در یک فایل JSON ذخیره شدند.
✅ می‌توان این پروژه را گسترش داد تا داده‌ها را در پایگاه داده ذخیره کند یا به‌صورت ریلتایم در داشبورد نمایش دهد.

📌 آیا این پروژه را اجرا کردید؟ اگر به مشکل برخوردید، سوالات خود را بپرسید! 🚀

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *