سبد خرید
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 بنویسیم که هر بار با اجرا کردنش، داده های فعلی رو در ادامه دیتابیسی ذخیره بکنه و بعد عملیات بروزرسانی انجام بشه. که نمونه کد رو در فایل زیر می بینید.

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

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

با عضویت در سایت به صورت مستقیم دانلود کنید

  • ارسال به ایمیل

Des

دریافت فایل این آموزشبرای دانلود فایل کلیک کنید

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

دیدگاه کاربران
  • بهرام 27 آبان 1400 / 12:03 ب.ظ

    سلام چطور میتونیم بعد از اینکه اطلاعات رو دریافت کردیم یه قیمتی براش تعیین کنیم هر موقه به اون قیمت رسد آلارم بدهد این کار برای دیده بان بازار سایت بورس میخوام

    • سامان چراغی 27 آبان 1400 / 10:02 ب.ظ

      سلام
      برای ایجاد آلارم یک مقاله تو اکسل داریم که جواب سوال شماست.

  • mehdinejad 3 آبان 1400 / 6:56 ب.ظ

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

    • حسنا خاکزاد 5 آبان 1400 / 12:35 ب.ظ

      درود
      شاید با فاصله کم رفرش زدید و قیمت ها تغییر نکرده!
      چون اگر طبق اموزش پیش رفته باشید و به اینترنت متصل باشید مشکلی نباید وجود داشته باشه

  • امیر شاه ولد 25 مهر 1400 / 8:21 ب.ظ

    با سلام خدمت سرکار خانم خاکزاد و با تشکر از آموزش خوبتون
    مشکلی که برای من پیش اومده اینه اول اینکه من سایت https://www.shakhesban.com/markets/stock را داخل اکسل وارد کردم ولی در جدولم ۴۰ ردیف بیشتر نمی دهد در حالی که من نیاز به همه آنها دارم . آیا راه حلی وجود دارد ؟ دوم اینکه من میخواستم سهامی رو که بیشتر باهاشون کار میکنم بصورت گزینشی وارد کنم آیا امکانش وجود دارد ؟ پیشاپیش از راهنمایی خوبتون سپاسگزارم

    • حسنا خاکزاد 26 مهر 1400 / 10:34 ق.ظ

      درود بر شما

      مورد اول مربوط به خود سایته و من راهی براش ندارم
      مورد دوم میتونید فیلت رکنید و لیست فیلتر شده رو اضافه کنید

  • ابوالفضل اکرمی ابرقوئی 8 مرداد 1400 / 3:19 ب.ظ

    سلام. ببخشید این آموزش که آخر متن گذاشتین فایل اکسل هست فقط که پس کد vbaکجا هست چجور کار میکنه؟

    • حسنا خاکزاد 9 مرداد 1400 / 12:03 ب.ظ

      درود بر شما
      فایل اکسل شامل کد هست
      ALT+F11 بزنید و وارد محیط وی بی ای بشید

  • درخشان 8 فروردین 1400 / 11:54 ب.ظ

    با سلام و عرض ارادت
    باید به شما بخاطر ارائه مطالب بسیار خوب و کاربردی که در سایت قرار می دهید تشکر کنم .
    من در زمینه بازارهای مالی و سرمایه فعال هستم و استخراج Data و تبدیل آنها به Information برای کار من بسیار اهمیت دارد و البته با توجه به تسلط شما بر مفاهیمی که در مورد اکسل ارائه می دهید من را راغب کرده که بسیاری از آموزش هایی را که در راستای توسعه دانش خودم در این زمینه مد نظر دارم از طریق شما دریافت کنم. البته اقدام در این خصوص در برنامه کار من هست و در سررسید برنامه ریزی انجام شده اقدام خواهم کرد. و البته سپاسگزار خواهم بود با مشورتی که از شما دریافت خواهم کرد ، فرآیند آموزشی که می تونه در این زمینه به من کمک کند را ترسیم نمایید .
    من با اکسل بیگانه نیستم ولی می دانم که دنیای وسیعی دارد و مایلم در راستای نوع فعالیت خودم و در یک فرآیند صحیح آموزشی قرار بگیرم تا به اهداف مورد نظر خودم برسم .
    سوال دیگری که هم اکنون برای من مطرح و البته پاسخ به آن گره گشا خواهد بود مورد زیر است.
    در زمینه Power Query مطالعاتی داشته ام و البته جامع و کامل نبوده است ، سوالی که برای من هم اکنون مطرح است گرفتن داده ها از سایت هایی است که مجموعه داده ها در چند صفحه می باشد. برای مثال اگر به آدرس زیر مراجعه کنید و بخواهید تاریخچه تغییرات قیمت دلار را داشته باشید شامل ۲۷۶۱ رکورد می باشد که در هر صفحه فقط ۳۰ رکورد را نمایش می دهدو البته از طریق Power Query همان ۳۰ رکورد قابل Load کردن است و اگر بخواهید همه رکورد ها را Load کنید باید صفحه به صفحه این کار انجام شودکه در چنین حالتی ، بیش از ۳۰ بار باید این عمل انجام شود(البته بر اساس دانش من)..
    آیا راه کاری در اکسل و شاید ابزاری دیگری برای Load کردن همه رکورد ها(۲۷۶۱ رکورد) بصورت یکجا از سایت مورد نظر وجود دارد؟
    ممنون خواهم شد راهنمایی بفرمایید.
    پیشا پیش از شما سپاسگزارم
    https://www.tgju.org/profile/price_dollar_rl/history

    • سامان چراغی 22 فروردین 1400 / 10:10 ق.ظ

      جناب درخشان عرض سلام
      تشکر از نظر لطف شما
      جهت مشاوره در خدمت شما هستیم.
      در مورد سوالی که پرسیدید، بهترین راه استفاده از فرمول نویسی M در Power Query هست که بسته به ساختار سایت مقصد، کدها میتونه متفاوت باشه، به هر حال یک نمونه از این مشکل در آدرس زیر پاسخ داده شده:
      دریافت اطلاعات صفحه بندی شده با استفاده از Power Query

  • محمد امین مهرزادگان 12 اسفند 1399 / 3:46 ب.ظ

    چطور میشه از دیجیکالا یا اُکالا یا شهروند یک گروه کالا مثل شکلات رو به اکسل فراخوان کرد؟

    • سامان چراغی 24 اسفند 1399 / 8:45 ق.ظ

      سلام
      اگر منظورتون اینه که اطلاعات هر محصول رو به اکسل بیارید میتونید از Get & Transform Data (یا همون Power Query) استفاده کنید.

  • سید محمد 8 بهمن 1399 / 6:37 ب.ظ

    با سلام و تشکر خانم خاکزاد
    سایت FIBIRAN /بازار/سهام حدود ۴۰۰ تا سطر داره منتهی تو چهار صفحه چیده شده که به صورت دیفالت ۱۰۰ تای اول رو نمایش میده

    و آدرس صفحات یکیه وقتی وارد اکسل میکنم همون ۱۰۰ تای اول رو نمایش میده و بقیش رو نشون نمیده کلا

    راهی هست که بشه تمام سطر ها رو وارد کرد ؟؟

    با تشکر

    • سامان چراغی 8 بهمن 1399 / 9:19 ب.ظ

      سلام
      چون هر ۱۰۰ ردیف در یک صفحه هستند عملا شما نمیتونید به صورت یکجا این ۴۰۰ ردیف رو بخوانید.
      باید سایت جایگزینی پیدا کنید که همه ردیف ها رو یکجا داشته باشه و در صفحات مختلف قرار داده نشده باشه.

  • mahdie 15 آذر 1399 / 8:33 ب.ظ

    سلام
    من میخوام اطلاعات سایتی شبیه به یک سایت خبری که اطلاعاتی مثل تعداد لایک، پاورلایک، سیلور لایک و …. در هر کدوم از پست هاش هسترو داشته باشم.
    چطور میتونم؟ ضمن اینکه ممکنه بعضی پست ها یکی یا دو تا از اینا (لایک ها) رو اصلا نداشته باشه
    ممنون از شما

    • حسنا خاکزاد 17 آذر 1399 / 8:32 ب.ظ

      درود
      بستگی به ساختار سایت داره!
      باید ببینید با چه روشی میتونید اطلاعات رو جمع اوری کنید
      اگر از پاور کوئری ج نگیرید احتمالا باید کدنویسی های پیشرفته انجام بشه

  • رجا 27 مهر 1399 / 5:41 ب.ظ

    سلام وقت بخیر
    ببخشید من میخوام اطلاعات از سایت سازمان بورس بگیرم نیاز به کدنویسی پیشرفته دارم میشه راهنمایی بفرمایید.راه تماسی هست که بتونم باهاتون صحبت کنم ؟

    • حسنا خاکزاد 28 مهر 1399 / 12:10 ب.ظ

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

  • علی 19 مهر 1399 / 9:41 ب.ظ

    سلام خانم خاکزاد مرسی بابت آموزش خوبتون،
    میخواستم ببنیم این قابلیت در نسخه موبایل اکسل هم وجود داره چون تو گوشی یه گزینه داره بنام data validation و سپس یک گزینه میاره به اسم is valid UrL ولی من میخواستم خروجی بگیرم اتفاقی نیافتاد ..
    و سوال دیگم اینه که با استفاده از api که فایل های json هستند میشه رو سلول های اکسل خروجی گرفت?

  • رودکی 19 مرداد 1399 / 5:22 ب.ظ

    سلام من میخوام از این صفحه سایت http://www.tsetmc.com
    از طریقی که آموزش دادید لیک آنلاین بگیرم و بیارمشون توی اکسل .
    صفحات دیگه رو میاره ولی این صفحه رو نمیتونه بیاره
    ضمن اینکه این صفحه خروجی اکسل هم میده ولی متاسفانه این خروجی رو هم نمیتونم بیارم توی اکسل و یا میشه همون خروجی اکسلی رو که این سایت میده رو انلاین کنم و مثلا هر ۱ دقیقه بروز رسانیش کنیم .
    ممنون میشم راهنمایی بفرمایید .

    • حسنا خاکزاد 19 مرداد 1399 / 6:43 ب.ظ

      درود
      سایت بورس ساختارش طوری هست که با این روش های موجود قابل ورود به اکسل رو نداره
      یا باید از سایتهای مشابه مثل fipiran استفاده کنید
      یا سراغ کدنویسی های پیشرفته که میتونن داده از سایت ها جمع آوری کنن برید

  • سجاد 15 مرداد 1399 / 9:03 ق.ظ

    سلام
    سوالی که من داشتم اینه که چرا ازسایت tsetmcیا سایت بورسی دیگه نمیتونم خروجی بگیرم؟
    ایا از صفحاتی که نیاز به لاگین شدن به سایت داره هم میشه خروجی گرفت برای اکسل؟اگر میشود چطور ؟

    • حسنا خاکزاد 15 مرداد 1399 / 6:42 ب.ظ

      درود
      ساختار سایتشون اینطور هست
      بعضی سایت ها تا حدی اطلاعات میدن مثل fipiran

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

  • موسوی‌نسل 5 خرداد 1399 / 3:38 ب.ظ

    سلام
    چطور می‌شه یه جدول رو از وان‌درایو به کوئری‌ها اضافه و بروزرسانیش کرد؟

    • سامان چراغی 19 خرداد 1399 / 8:45 ق.ظ

      سلام
      روی فایل اکسل قرار داده شده در وان درایو کلیک راست کنید و گزینه Download رو بزنید. زمانیکه فایل دانلود شد، لینک فایل رو کپی کنید. در اکسل با استفاده از گزینه From Web و لینک فایلی که دانلود کردید میتونید به فایل مورد نظر دسترسی پیدا کنید.

  • امین 5 اردیبهشت 1399 / 0:19 ق.ظ

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

  • zara 26 فروردین 1399 / 2:31 ب.ظ

    با سلام
    اکسل من from web رو در قسمت get external data داره که به این صورت کار نمیکنه

    • حسنا خاکزاد 26 فروردین 1399 / 4:56 ب.ظ

      درود
      اپدیت کنید
      از ۲۰۱۶ به بعد به این شکل هست
      در کل این امکان در همه نسخه ها وجد داره. باید دنبال عبارت from web بگردید. در هر ورژن ی مقدار تفاوت هایی وجود داره

    • سعید عظیمی 26 فروردین 1399 / 6:04 ب.ظ

      سلام، من هم همین مشکل رو داشتم، از مسیر زیر بزنید، میاره
      Data > Get & Transform > New Query > From Other Sources > From Web

      • Zara 7 اردیبهشت 1399 / 12:40 ب.ظ

        ممنونم حل شد

  • سعید 20 فروردین 1399 / 1:17 ب.ظ

    سلام، با سپاس بابت ارسال این مطلب خوب و کاربردی،

ارسال دیدگاه

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

توسط
تومان