سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه

انتقال داده از وبسایت به اکسل

دریافت اطلاعات از سایت
۴.۳/۵ - (۶ امتیاز)

دریافت اطلاعات از سایت

استخراج داده از وبسایت یکی از مسائل پرکاربرد به شمار میاد. خیلی وقت ها پیش میاد که بخوایم داده های موجود در یک سایت رو در یک فایل اکسل داشته باشیم و بدون اینکه نیاز به باز کردن سایت باشه، داده های اپدیت شده رو در اکسل ببینیم و بررسی های لازم رو روش انجام بدیم. مثلا فرض کنید قیمت ارز، طلا و سایر شاخص های مالی رو در بازه های زمانی خاص لازم داریم و میخوایم این داده ها رو در اکسل داشته باشیم که بتونیم محاسباتی رو روی آنها اعمال کنیم. برای همین امروزه دریافت اطلاعات از سایت در اکسل مسئله مهمی به حساب میاد. اکسل با توجه به ساختار سایت مورد نظر، تا حدی میتونه برخی اطلاعات رو برای ما فراخوانی و بروزرسانی بکنه. البته به این نکته باید دقت داشته باشیم که برای داشتن اطلاعات یک سایت، بسته به ساختار مورد نظر و نوع اطلاعات درخواستی روشهای مختلفی برای جمع آوری داده ها وجود داره. حتی نرم افزارها و سایت هایی برای این کار طراحی شده اند که در سطوح و جزئیات مختلف میتونن این کار رو (رایگان و غیررایگان) انجام بدن.

اکسل چطور میتونه داده ها رو از سایت فراخوانی کنه؟

اکسل از ورژن های قدیمی مثل ۲۰۰۳ این امکان رو داشته که بتونه اطلاعات سایتی رو فراخوانی و بروزرسانی کنه. خیلی از افراد حتی به این فکر نمیکنند که بتونن داده های یک سایت رو داشته باشن چه برسه به اینکه اکسل هم بتونه این کار رو انجام بده. اما انجام این کار در اکسل خیلی راحت و کاربردی انجام میشه. برای اینکه ببینیم چطور میتونیم این کار رو انجام بدیم، مراحل زیر رو انجام میدیم:

آدرس سایت مورد نظر رو پیدا کنید

سایتی که انتخاب کردم که داده ها رو از روی اون فراخوانی کنیم سایت www.tgju.org هست. این سایت اطلاعات مربوط به قیمت طلا، ارز، شاخص بورس و … رو بصورت آنلاین در اختیار ما قرار میده و ما میتونیم این اطلاعات ور در اکسل داشته باشیم.

اکسل رو باز کنید و داده ها رو فراخوانی کنید

فایل اکسل رو باز کرده و از تب Data و قسمت Get & Transform Data گزینه From Web رو انتخاب میکنیم. استخراج داده از وبسایت- From web

شکل ۱ – استخراج داده از وبسایت- From web

در پنجره نمایش داده شده، آدرس سایت مورد نظر رو وارد کرده و Ok رو میزنیم. در این قسمت دو گزینه basic و advance داریم که در گزینه advance به ما امکاناتی رو میده که چچطور داده ها جمع آوری بشه. اما در این تمرین، گزینه Basic جواب نیاز ما رو میده. استخراج داده از وبسیات – آدرس سایت مورد نظر

شکل ۲ – استخراج داده از وبسیات – آدرس سایت مورد نظر

نکته: اگر آدرس صفحه مورد نظر طولانی هست، آدرس رو از نوار آدرس کپی کرده و در پنجره From web پیست کنید.

  بعد از زدن Ok پنجره ای باز میشه که همه جداول موجود در اون صفحه سایت که قابل وارد کردن به اکسل هستن رو نمایش میده. استخراج داده از وبسایت – لیست جداول موجود در صفحه وب مورد نظر

شکل ۳ – دریافت اطلاعات از سایت – لیست جداول موجود در صفحه وب مورد نظر

حالا از پنجره نمایش داده شده، جداول مورد نظر رو تیک میزنیم. مثلا د راینجا جدول مربوط به نرخ ارز، طلا و ارز مجازی رو انتخاب میکنیم. برای اینکه بتونیم چند جدول رو انتخاب کنیم تیک گزینه Select Multiple items رو میزنیم. در اینجا با توجه به بررسی های انجام شده، میدونیم که جدول شماره ۱۶، ارز مجازی، جدول شماره ۲، نرخ طلا و جدول شماره ۴، نرخ سکه رو نشون میده.

نکته: با توجه به اینکه جداول اسم نداره، باید یکی یکی بررسی کنیم تا جداول مورد نظرمون رو پیدا کنیم و در صورت وجود ابهام داده های جداول رو با سایت (تب Web view) تطبیق بدیم که بتونیم جدول دقیق رو انتخاب کنیم.

  استخراج داده از وبسایت – انتخاب جداول داد های مورد نظر

شکل ۴ – استخراج داده از وبسایت – انتخاب جداول داد های مورد نظر

حالا کافیه جداول مورد نظر رو به اکسل وارد کنیم. برای این کار روی گزینه Load کلیک میکنیم. با کلیک بر روی گزینه Load سه جدولی که انتخاب کردیم، در نوار Queries & Connections نمایش داده میهش که با نگه داشتن موس روی هر کدوم، محتویات جدول، آخرین زمان بروز رسانی و … نمایش داده میشه که با کلیک روی … و انتخاب گزینه Load to میتونیم جدول مورد نظر رو وارد شیت اکسل کنیم. جداول اضافه شده در قسمت Queries & Connections

شکل ۵ – استخراج داده از وبسایت- جداول اضافه شده در قسمت Queries & Connections

با کلیک روی Load to پنجره ای باز میشه که میپرسه این داده ها در چه قالبی وارد اکسل بشن؟ گزینه Table رو انتخاب میکنیم و سلول مورد نظر رو برای ورود داده ها انتخاب میکنیم: ورود داده ها به شیت اکسل

شکل ۶ – استخراج داده از وبسایت – ورود داده ها به شیت اکسل

با زدن Ok داده های جدول انتخاب شده وارد اکسل خواهد شد. همین کار رو برای دو جدول دیگه هم انجام میدیم و هر سه جدول رو در شیت اکسل وارد میکنیم. (با توجه به جزئیات موجود، میتونیم هر جدول رو در شیت های جداگانه (New Worksheet) هم وارد کنیم) وارد کردن داده ها در شیت اکسل

شکل ۷- استخراج داده از وبسایت – وارد کردن داده ها در شیت اکسل

بروزرسانی داده ها بعد از دریافت اطلاعات از سایت

خب سوالی که پیش میاد اینه که بروز رسانی این داده به چه صورت هست؟ مثلا اگه بخوایم در بازه های زمانی مشخص، این داده ها بروز رسانی بشه باید چکار کنیم؟ بروز رسانی بصورت دستی (زمان های نامنظم) چطور انجام میشه؟

بروز رسانی کوئری ها بصورت دستی

برای انجام تنظیمات مربوط به بروزرسانی باید طبق زیر عمل کنیم: اگر بخوایم بروز رسانی دستی و غیرخودکار انجام بشه، هر بار که نیاز به بروز رسانی بود، باید گزینه Refresh از تب Table Tools رو بزنیم: بروزرسانی بصورت دستی

شکل ۸ – استخراج داده از وبسایت – بروزرسانی بصورت دستی

با زدن refresh all همه کوئری ها بروز رسانی میشن. اگر بخوایم هر کوئری جداگانه آپدیت بشه، کوئری رو انتخاب کرده و از تب Query Tools گزینه Refresh رو انتخاب میکنیم. یا در گوشه سمت راست هر کوئری روی گزینه Refresh کلیک میکنیم. شکل ۹ بروز رسانی کوئری

شکل ۹ – دریافت اطلاعات از سایت – بروز رسانی کوئری

بروز رسانی کوئری ها بصورت خودکار

برای هر کوئری میتونیم تعیین کنیم که چطور و در چه فواصل زمانی بروزرسانی بشه. برای این کار کافیه روی جدول مورد نظر کلیک کرده و از تب Table Tools و گزینه Refresh روی گزینه Connection Properties کلیک کنیم و تنظیمات دلخواه رو در پنجره نمایش داده شده انجام بدیم. همونطور که در شکل ۱۰ نمایش داده شده، فاصله زمانی بروزرسانی رو میتونیم تنظیم کنیم. با زدن تیک Refresh data when opening the file با هر بار باز کردن فایل، داده ها بروز رسانی میشه. توجه داشته باشید که همه این موارد در صورتی قابل انجام هست که اتصال به اینترنت برقرار باشه. تنظیم زمان های بروزرسانی خودکار

شکل ۱۰ – استخراج داده ها از وبسایت – تنظیم زمان های بروزرسانی خودکار

این تنظیمات رو از مسیر شکل ۱۱ نیز میتونیم انجام بدیم. با نگه داشتن روی هر کوئری و زدن … با کلیک روی گزینه Properties  پنجره تنظیم زمان بروزرسانی نمایش داده میشه. انجام تنظیمات زمان های بروزرسانی از روی هر کوئری

شکل ۱۱- استخراج داده از وبسایت – انجام تنظیمات زمان های بروزرسانی از روی هر کوئری

حالا که داده های مورد نظر سایت رو در فایل اکسل داریم با استفاده از توابع و ابزارهای گزارشگیری و تحلیل داده میتونیم تحلیل های مورد نظر رو روی داده ها انجام بدیم. ابزار Power Query وسیله بسیار خوبی برای دریافت اطلاعات از سایت های مختلف هست که این کار یکی از توانایی هاشه. یکی از مسائلی که خیلی مهمه و مورد نیاز خیلی افراد هست اینه که هر بار قبل از رفرش کردن و بروزرسانی داده ها، داده های قبلی در جای دیگری ذخیره بشه و بعد بروز رسانی انجام بشه. این کار کمک میکنه که بتونیم تحلیل های بهتری روی داده ها داشته باشیم. برای این کار باید کد VBA بنویسیم که هر بار با اجرا کردنش، داده های فعلی رو در ادامه دیتابیسی ذخیره بکنه و بعد عملیات بروزرسانی انجام بشه. که نمونه کد رو در فایل زیر می بینید.

دانلود فایل نمونه این آموزش

برای دانلود این فایل روی دکمه زیر کلیک کنید:

آواتار
145

فارغ التحصیل لیسانس مهندسی صنایع، ارشد مدیریت صنعتی از دانشگاه تربیت مدرس و عاشق اکسل هستم. از سال 1388 که ترم 2 لیسانس بودم، به توصیه استاد مشاورم شروع به خوندن اکسل بصورت حرفه ای کردم و همچنان در حال مطالعه و یادگیری و البته آموزش به بقیه هستم.

دیدگاه کاربران
  • سید ابوالفضل حسینی ۱۴ خرداد ۱۴۰۲ / ۱۲:۱۰ ب٫ظ

    سلام
    من با کد نویسی یک خروجی در یک سایت دارم که به صورت دینامیک هر یک دقیقه یک بار یک عدد تولید می کنه و اون رو در یک آرایه unshift میکنه.
    میخوام قبل از unshift اون عدد در آرایه ،اون عدد در یک سلول اکسل جایگیری بشه.
    ۱-قطعا راهی وجود داره که به صورت دینامیک اعداد تولیدی در سلول های بعدی جایگذاری بشوند واگر ممکنه سرخط بهم بدید.
    ۲-راهی وجود داره در پایان Run شدن کد، وقتی اعداد در آرایه جای گرفتن و تولید اعداد متوقف شد(حالت استاتیک به خودش گرفت) اعدادآرایه از شمارنده ۰ تا عنصر انتهایی به ترتیب بیان و در ستون های متفاوت یک ردیف قرار بگیرند؟

    • سامان چراغی ۱۷ خرداد ۱۴۰۲ / ۸:۳۷ ق٫ظ

      درود
      قبل از انتقال اطلاعات به آرایه اطلاعات رو از متغیر به سلول منتقل کنید:

      Sheet1.Range("A1") = MyData(1)
      

      در این کد اطلاعات درون آرایه شما (MyData) به سلول A1 منتقل شده. این خط کد رو متناسب با نیازتون تغییر بدید و در کدتون قرار بدبد.
      برای اینکه اطلاعات درون سلول بعدی قرار بگیره راه های مختلفی هست. یکی از اون راه ها استفاده از کد زیر هست که اول سلول خالی در یک ستون رو میده:

      Sheet1.range(Sheet1("A:A").Rows.Count - 1).End(XlUP).Offset(1,0)
      

      برای انتقال اطلاعات از آرایه به آدرس دلخواه کافیه یک حلقه (اگر آرایه دو بعدی یا بیشتر هست برای هر بعد یک حلقه) ایجاد کنید و با استفاده از متغیر شمارنده، اطلاعات رو در سلول های مورد نظر انتقال بدید. (ابتدای پاسخ یک نمونه براتون نوشتم)

  • زهرا ۱ اردیبهشت ۱۴۰۲ / ۱:۴۳ ب٫ظ

    سلام من از سایت tgju خواستم نرخ ارز رو از ۳ سال گذشته تا کنون رو در اکسل وارد کنم و خب در سایت چند صفحه میشه ولی توو اکسل فقط ۳۰ ردیف وارد میکنه و صفحه های دیگه وارد اکسل نمیشه. باید جیکار کنم؟

    • آواتار
      حسنا خاکزاد ۲۳ اردیبهشت ۱۴۰۲ / ۲:۰۸ ب٫ظ

      درود
      احتمالا هر صفحه رو جدا جدا باید وارد کنید ار اجازه بده بهتون

  • اشکان ۱۹ فروردین ۱۴۰۲ / ۴:۵۳ ب٫ظ

    سلام وقتتون به خیر
    من برای table نیاز نداشتم بلکه از یک صفحه فقط یک عدد رو می‌خواهم نمایش بده
    از هر طریقی میرم سایت رو اصلا نشون نمیده یا script error میدهچ
    سایت یک سایت فروشگاهی ایرانی هستش

    • آواتار
      حسنا خاکزاد ۲۰ فروردین ۱۴۰۲ / ۲:۲۴ ب٫ظ

      درود
      خود سایت اول از همه باید این امکان رو داشته باشه که جداول رو بده
      بعد مثلا اون جدول رو میارید میبریدداخل کوئری ادیتور و اون سل مورد نظر رو فقط وارد اکسل میکنید
      شرط اول اینه که ساختار اون سایت این اجازه رو به شما بده

  • بهارلو ۸ فروردین ۱۴۰۲ / ۳:۵۸ ب٫ظ

    سلام خسته نباشید
    از سایت https://mofidmmf.ir/ ، انتخاب نمای بازارگردانی: صندوق سکه ی طلای مفید (عیار)؛
    دریافت دیتا ناو گروه عیار می خوام انجام بدم ولی اکسل ناو صندوق اختصاصی بازارگردانی مفید (دیفالت سایت) رو برای دریافت نمایش میده.
    چه باید کنم؟

    • سامان چراغی ۵ خرداد ۱۴۰۲ / ۱۰:۵۸ ب٫ظ

      سلام
      اگر ساختار سایت مناسب برای فراخوانی داده نباشه کاری نمیشه کرد و باید سایت های جایگزین رو امتحان کنید.

  • علی ۱۷ بهمن ۱۴۰۱ / ۵:۲۰ ب٫ظ

    سلام
    دیتای سابقه سکه امامی رو چطور از tjgu دانلود کنم و csv سیو کنم
    ممنون واقعا
    لطف میکنید

    • آواتار
      حسنا خاکزاد ۲۸ بهمن ۱۴۰۱ / ۹:۴۶ ب٫ظ

      درود بر شما
      طبق توضیحاتی که اارئه شده، اگر سایت در اون خصوص قابلیت رو داشته باشه جدولشو میبینید
      وارد اکسل کنید و بعد CSV ذخیره کنید

      • حسین ۸ مرداد ۱۴۰۲ / ۲:۲۸ ق٫ظ

        با سلام آیا از سایتی که نام کاربری و رمز ورود داره هم میشه داده ها رو وارد کرد در ضمن نام کاربری و رمز میدونم

        • آواتار
          حسنا خاکزاد ۸ مرداد ۱۴۰۲ / ۲:۵۳ ب٫ظ

          درود بر شما
          تا اونجا که میدونم با کدنویسی پیشرفته VBA بله میشه

  • میرزا ۱۶ دی ۱۴۰۱ / ۹:۵۸ ب٫ظ

    سلام آیا امکان استفاده از این ترفند جهت بدست آوردن أمار در سامانه های داخلی بانک هست ، کارمند بانک هستم و برای بدست آوردن روزانه آمار وقت زیادی صرف میکنم ، ولی هر کار کردم نشد اکسل را به سامانه داخلی وصل کنم
    لطفا راهنمایی بفرمایید

    • سامان چراغی ۲۴ دی ۱۴۰۱ / ۹:۲۰ ق٫ظ

      هر آدرسی که شما بهش دسترسی داشته باشید رو میتونید از این طریق (در صورت درست بودن ساختار صفحه وب) وارد کنید.

  • فرید ۵ مهر ۱۴۰۱ / ۱۱:۴۸ ب٫ظ

    سلام و سپاس
    داده های وب رو وارد اکسل کردم ولی نمیتونیم هیچکدوم از چهار عمل اصلی رو روشون پیداده کرد. دوتا عدد روهم نمیشه باهم جمع کرد.

    • آواتار
      حسنا خاکزاد ۱۶ مهر ۱۴۰۱ / ۱۲:۳۲ ب٫ظ

      درود بر شما
      مقاله مربوط به بدیل متن به عدد رو مطالعه کنید

  • علیرضا ۱۳ شهریور ۱۴۰۱ / ۵:۱۹ ب٫ظ

    سلام. تشکر بابت آموزش این موضوع کاربردی. میخواستم فایل انتهای این مبحث دانلود کنم وارد یه صفحه میشه و ادرس ایمیل میخواد جهت ارسال ولی وقتی میزنم هیچی ارسال نمیکنه و حتی اعلام نمیکنه که ارسال شد.نیاز دارم .ممنون میشم ارسال کنید

    • آواتار
      حسنا خاکزاد ۱۵ شهریور ۱۴۰۱ / ۳:۰۴ ب٫ظ

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

  • داود ۸ شهریور ۱۴۰۱ / ۹:۰۸ ب٫ظ

    سلام
    ممنون از مطلب پرفکت و گیراتون .. دقیقتر از هر سایت دیگه توضیح داده بودین .. خدا قوت.
    من این تمرین کار با پاور کوئری رو با همین سایت tgju.org انجام دادم … فقط مشکلی که هست روی سایت مقادیر جداول هر چند ثانیه یبار آپدیت میشه، گاهی حتی لحظه‌ای، اما تو فایل اکسل هر بار که ریفرش میکنیم دیتا مربوط به ده بیست دقیقه قبل یا گاهی یکی دو ساعت قبله، علت این چیه؟

    • آواتار
      حسنا خاکزاد ۹ شهریور ۱۴۰۱ / ۰:۲۸ ق٫ظ

      درود بر شما
      ممنون از همراهیتون
      نمیدونم واقعا
      تنها دسترسی که داریم به همون refresh هست
      دلیل تاخیر رو نمیدونم.

  • Hesam ۹ خرداد ۱۴۰۱ / ۱۰:۵۵ ق٫ظ

    سلام من تونستم اطلاعات رو ایمپوت کنم توی اکسل و خیلی خوشحالم از این بابت و ممنونم ازتون:)
    فقط یه مشکلی هست مثلا اطلاعاتی که ایمپورت کردم به فرض داخل سلول E8 یه عدد داخلش هست بعد من توی یه سلول دیگه خیلی ساده نوشته۱۲+۸E=اما خطای #VALUE! میده میشه راهنمایی کنید باید چیکار کنم؟

    • سامان چراغی ۲۳ تیر ۱۴۰۱ / ۹:۲۴ ق٫ظ

      سلام
      در قسمت ویرایش Query باید جنس داده مورد نظر رو از Text روی Whole Number یا سایر فرمت های عددی تنظیم کنید.

ارسال دیدگاه

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

توسط
تومان