انتقال داده از وبسایت به اکسل
دریافت اطلاعات از سایت
استخراج داده از وبسایت یکی از مسائل پرکاربرد به شمار میاد. خیلی وقت ها پیش میاد که بخوایم داده های موجود در یک سایت رو در یک فایل اکسل داشته باشیم و بدون اینکه نیاز به باز کردن سایت باشه، داده های اپدیت شده رو در اکسل ببینیم و بررسی های لازم رو روش انجام بدیم. مثلا فرض کنید قیمت ارز، طلا و سایر شاخص های مالی رو در بازه های زمانی خاص لازم داریم و میخوایم این داده ها رو در اکسل داشته باشیم که بتونیم محاسباتی رو روی آنها اعمال کنیم. برای همین امروزه دریافت اطلاعات از سایت در اکسل مسئله مهمی به حساب میاد.
اکسل با توجه به ساختار سایت مورد نظر، تا حدی میتونه برخی اطلاعات رو برای ما فراخوانی و بروزرسانی بکنه.
البته به این نکته باید دقت داشته باشیم که برای داشتن اطلاعات یک سایت، بسته به ساختار مورد نظر و نوع اطلاعات درخواستی روشهای مختلفی برای جمع آوری داده ها وجود داره. حتی نرم افزارها و سایت هایی برای این کار طراحی شده اند که در سطوح و جزئیات مختلف میتونن این کار رو (رایگان و غیررایگان) انجام بدن.
اکسل چطور میتونه داده ها رو از سایت فراخوانی کنه؟
اکسل از ورژن های قدیمی مثل 2003 این امکان رو داشته که بتونه اطلاعات سایتی رو فراخوانی و بروزرسانی کنه. خیلی از افراد حتی به این فکر نمیکنند که بتونن داده های یک سایت رو داشته باشن چه برسه به اینکه اکسل هم بتونه این کار رو انجام بده. اما انجام این کار در اکسل خیلی راحت و کاربردی انجام میشه. برای اینکه ببینیم چطور میتونیم این کار رو انجام بدیم، مراحل زیر رو انجام میدیم:
آدرس سایت مورد نظر رو پیدا کنید
سایتی که انتخاب کردم که داده ها رو از روی اون فراخوانی کنیم سایت www.tgju.org هست. این سایت اطلاعات مربوط به قیمت طلا، ارز، شاخص بورس و … رو بصورت آنلاین در اختیار ما قرار میده و ما میتونیم این اطلاعات ور در اکسل داشته باشیم.
اکسل رو باز کنید و داده ها رو فراخوانی کنید
فایل اکسل رو باز کرده و از تب Data و قسمت Get & Transform Data گزینه From Web رو انتخاب میکنیم.
شکل 1 – استخراج داده از وبسایت- From web
در پنجره نمایش داده شده، آدرس سایت مورد نظر رو وارد کرده و Ok رو میزنیم. در این قسمت دو گزینه basic و advance داریم که در گزینه advance به ما امکاناتی رو میده که چچطور داده ها جمع آوری بشه. اما در این تمرین، گزینه Basic جواب نیاز ما رو میده.
شکل 2 – استخراج داده از وبسیات – آدرس سایت مورد نظر
اگر آدرس صفحه مورد نظر طولانی هست، آدرس رو از نوار آدرس کپی کرده و در پنجره From web پیست کنید.
بعد از زدن Ok پنجره ای باز میشه که همه جداول موجود در اون صفحه سایت که قابل وارد کردن به اکسل هستن رو نمایش میده.
شکل 3 – دریافت اطلاعات از سایت – لیست جداول موجود در صفحه وب مورد نظر
حالا از پنجره نمایش داده شده، جداول مورد نظر رو تیک میزنیم. مثلا د راینجا جدول مربوط به نرخ ارز، طلا و ارز مجازی رو انتخاب میکنیم.
برای اینکه بتونیم چند جدول رو انتخاب کنیم تیک گزینه Select Multiple items رو میزنیم. در اینجا با توجه به بررسی های انجام شده، میدونیم که جدول شماره 16، ارز مجازی، جدول شماره 2، نرخ طلا و جدول شماره 4، نرخ سکه رو نشون میده.
با توجه به اینکه جداول اسم نداره، باید یکی یکی بررسی کنیم تا جداول مورد نظرمون رو پیدا کنیم و در صورت وجود ابهام داده های جداول رو با سایت (تب Web view) تطبیق بدیم که بتونیم جدول دقیق رو انتخاب کنیم.
شکل 4 – استخراج داده از وبسایت – انتخاب جداول داد های مورد نظر
حالا کافیه جداول مورد نظر رو به اکسل وارد کنیم. برای این کار روی گزینه Load کلیک میکنیم. با کلیک بر روی گزینه Load سه جدولی که انتخاب کردیم، در نوار Queries & Connections نمایش داده میهش که با نگه داشتن موس روی هر کدوم، محتویات جدول، آخرین زمان بروز رسانی و … نمایش داده میشه که با کلیک روی … و انتخاب گزینه Load to میتونیم جدول مورد نظر رو وارد شیت اکسل کنیم.
شکل 5 – استخراج داده از وبسایت- جداول اضافه شده در قسمت Queries & Connections
با کلیک روی Load to پنجره ای باز میشه که میپرسه این داده ها در چه قالبی وارد اکسل بشن؟ گزینه Table رو انتخاب میکنیم و سلول مورد نظر رو برای ورود داده ها انتخاب میکنیم:
شکل 6 – استخراج داده از وبسایت – ورود داده ها به شیت اکسل
با زدن Ok داده های جدول انتخاب شده وارد اکسل خواهد شد. همین کار رو برای دو جدول دیگه هم انجام میدیم و هر سه جدول رو در شیت اکسل وارد میکنیم. (با توجه به جزئیات موجود، میتونیم هر جدول رو در شیت های جداگانه (New Worksheet) هم وارد کنیم)
شکل 7- استخراج داده از وبسایت – وارد کردن داده ها در شیت اکسل
بروزرسانی داده ها بعد از دریافت اطلاعات از سایت
خب سوالی که پیش میاد اینه که بروز رسانی این داده به چه صورت هست؟
مثلا اگه بخوایم در بازه های زمانی مشخص، این داده ها بروز رسانی بشه باید چکار کنیم؟ بروز رسانی بصورت دستی (زمان های نامنظم) چطور انجام میشه؟
بروز رسانی کوئری ها بصورت دستی
برای انجام تنظیمات مربوط به بروزرسانی باید طبق زیر عمل کنیم:
اگر بخوایم بروز رسانی دستی و غیرخودکار انجام بشه، هر بار که نیاز به بروز رسانی بود، باید گزینه Refresh از تب Table Tools رو بزنیم:
شکل 8 – استخراج داده از وبسایت – بروزرسانی بصورت دستی
با زدن refresh all همه کوئری ها بروز رسانی میشن. اگر بخوایم هر کوئری جداگانه آپدیت بشه، کوئری رو انتخاب کرده و از تب Query Tools گزینه Refresh رو انتخاب میکنیم. یا در گوشه سمت راست هر کوئری روی گزینه Refresh کلیک میکنیم. شکل 9
شکل 9 – دریافت اطلاعات از سایت – بروز رسانی کوئری
بروز رسانی کوئری ها بصورت خودکار
برای هر کوئری میتونیم تعیین کنیم که چطور و در چه فواصل زمانی بروزرسانی بشه. برای این کار کافیه روی جدول مورد نظر کلیک کرده و از تب Table Tools و گزینه Refresh روی گزینه Connection Properties کلیک کنیم و تنظیمات دلخواه رو در پنجره نمایش داده شده انجام بدیم. همونطور که در شکل 10 نمایش داده شده، فاصله زمانی بروزرسانی رو میتونیم تنظیم کنیم. با زدن تیک Refresh data when opening the file با هر بار باز کردن فایل، داده ها بروز رسانی میشه. توجه داشته باشید که همه این موارد در صورتی قابل انجام هست که اتصال به اینترنت برقرار باشه.
شکل 10 – استخراج داده ها از وبسایت – تنظیم زمان های بروزرسانی خودکار
این تنظیمات رو از مسیر شکل 11 نیز میتونیم انجام بدیم. با نگه داشتن روی هر کوئری و زدن … با کلیک روی گزینه Properties پنجره تنظیم زمان بروزرسانی نمایش داده میشه.
شکل 11- استخراج داده از وبسایت – انجام تنظیمات زمان های بروزرسانی از روی هر کوئری
حالا که داده های مورد نظر سایت رو در فایل اکسل داریم با استفاده از توابع و ابزارهای گزارشگیری و تحلیل داده میتونیم تحلیل های مورد نظر رو روی داده ها انجام بدیم. ابزار Power Query وسیله بسیار خوبی برای دریافت اطلاعات از سایت های مختلف هست که این کار یکی از توانایی هاشه.
یکی از مسائلی که خیلی مهمه و مورد نیاز خیلی افراد هست اینه که هر بار قبل از رفرش کردن و بروزرسانی داده ها، داده های قبلی در جای دیگری ذخیره بشه و بعد بروز رسانی انجام بشه. این کار کمک میکنه که بتونیم تحلیل های بهتری روی داده ها داشته باشیم.
برای این کار باید کد VBA بنویسیم که هر بار با اجرا کردنش، داده های فعلی رو در ادامه دیتابیسی ذخیره بکنه و بعد عملیات بروزرسانی انجام بشه. که نمونه کد رو در فایل زیر می بینید.
دانلود فایل نمونه این آموزش
برای دانلود این فایل روی دکمه زیر کلیک کنید:
17 نظر
سلام
من میخوام اطلاعات سایتی شبیه به یک سایت خبری که اطلاعاتی مثل تعداد لایک، پاورلایک، سیلور لایک و …. در هر کدوم از پست هاش هسترو داشته باشم.
چطور میتونم؟ ضمن اینکه ممکنه بعضی پست ها یکی یا دو تا از اینا (لایک ها) رو اصلا نداشته باشه
ممنون از شما
درود
بستگی به ساختار سایت داره!
باید ببینید با چه روشی میتونید اطلاعات رو جمع اوری کنید
اگر از پاور کوئری ج نگیرید احتمالا باید کدنویسی های پیشرفته انجام بشه
سلام وقت بخیر
ببخشید من میخوام اطلاعات از سایت سازمان بورس بگیرم نیاز به کدنویسی پیشرفته دارم میشه راهنمایی بفرمایید.راه تماسی هست که بتونم باهاتون صحبت کنم ؟
درود
سایت بورس براحتی اطلاعات نمیده
ساختارش اجازه نمیده
شاید بهتر باشه از روش های دیگه برای جمع اوری اطلاعات بورس استفاده کنید
سلام خانم خاکزاد مرسی بابت آموزش خوبتون،
میخواستم ببنیم این قابلیت در نسخه موبایل اکسل هم وجود داره چون تو گوشی یه گزینه داره بنام data validation و سپس یک گزینه میاره به اسم is valid UrL ولی من میخواستم خروجی بگیرم اتفاقی نیافتاد ..
و سوال دیگم اینه که با استفاده از api که فایل های json هستند میشه رو سلول های اکسل خروجی گرفت?
سلام من میخوام از این صفحه سایت http://www.tsetmc.com
از طریقی که آموزش دادید لیک آنلاین بگیرم و بیارمشون توی اکسل .
صفحات دیگه رو میاره ولی این صفحه رو نمیتونه بیاره
ضمن اینکه این صفحه خروجی اکسل هم میده ولی متاسفانه این خروجی رو هم نمیتونم بیارم توی اکسل و یا میشه همون خروجی اکسلی رو که این سایت میده رو انلاین کنم و مثلا هر 1 دقیقه بروز رسانیش کنیم .
ممنون میشم راهنمایی بفرمایید .
درود
سایت بورس ساختارش طوری هست که با این روش های موجود قابل ورود به اکسل رو نداره
یا باید از سایتهای مشابه مثل fipiran استفاده کنید
یا سراغ کدنویسی های پیشرفته که میتونن داده از سایت ها جمع آوری کنن برید
سلام
سوالی که من داشتم اینه که چرا ازسایت tsetmcیا سایت بورسی دیگه نمیتونم خروجی بگیرم؟
ایا از صفحاتی که نیاز به لاگین شدن به سایت داره هم میشه خروجی گرفت برای اکسل؟اگر میشود چطور ؟
درود
ساختار سایتشون اینطور هست
بعضی سایت ها تا حدی اطلاعات میدن مثل fipiran
صفحات لاگ این هم بله شدنی هست منتها نیاز به کدنویسی پیشرفته هست.
سلام
چطور میشه یه جدول رو از واندرایو به کوئریها اضافه و بروزرسانیش کرد؟
سلام
روی فایل اکسل قرار داده شده در وان درایو کلیک راست کنید و گزینه Download رو بزنید. زمانیکه فایل دانلود شد، لینک فایل رو کپی کنید. در اکسل با استفاده از گزینه From Web و لینک فایلی که دانلود کردید میتونید به فایل مورد نظر دسترسی پیدا کنید.
بسیار عالی بود. اصلا نمیدونستم اکسل چنین امکاناتی داره
با سلام
اکسل من from web رو در قسمت get external data داره که به این صورت کار نمیکنه
درود
اپدیت کنید
از 2016 به بعد به این شکل هست
در کل این امکان در همه نسخه ها وجد داره. باید دنبال عبارت from web بگردید. در هر ورژن ی مقدار تفاوت هایی وجود داره
سلام، من هم همین مشکل رو داشتم، از مسیر زیر بزنید، میاره
Data > Get & Transform > New Query > From Other Sources > From Web
ممنونم حل شد
سلام، با سپاس بابت ارسال این مطلب خوب و کاربردی،