آموزش بررسی وضعیت وب سایت در پایتون

33
0
وضعیت وب سایت در پایتون

این آموزش پایتون را دنبال کنید و یک جستجوگر سایت خودکار با کد بسیار کم بسازید. در این مقاله به آموزش بررسی وضعیت وب سایت در پایتون می پردازیم.

وضعیت وب سایت در پایتون

اگر اغلب می‌بینید که داده‌ها را از وب‌سایت‌ها بازیابی میکنید (fetching)، احتمالاً باید این فرآیند را خودکار کنید. این فرآیند که گاهی اوقات به عنوان “web scraping” نامیده می‌شود، برای سایت‌هایی که API یا فید رسمی ارائه نمی‌دهند، رایج است. البته، اگر سایتی که می‌خواهید بازیابی (fetching) کنید در دسترس نباشد، به جایی نخواهید رسید.

اگر سایت خود را اداره می کنید، احتمالاً قبلاً با خرابی مواجه شده اید. این می تواند ناامید کننده باشد، باعث از دست دادن بازدیدکنندگان شود و هر فعالیتی که ممکن است سایت شما مسئول آن باشد را قطع کند. در چنین شرایطی، ارزش دارد که بتوانید به راحتی در دسترس بودن وب سایت خود را بررسی کنید.

پایتون یک زبان عالی برای اسکریپت نویسی است و سینتکس مختصر و در عین حال قابل خواندن آن، اجرای جستجوگر سایت را به یک کار ساده تبدیل می کند.

ایجاد جستجوگر وب سایت شخصی شما

جستجوگر وب سایت به گونه ای طراحی شده است که چندین وب سایت را به طور همزمان در خود جای دهد. این به شما امکان می دهد به راحتی سایت هایی را که دیگر به آنها اهمیت نمی دهید تغییر دهید یا شروع به بررسی سایت هایی کنید که در آینده راه اندازی می کنید. جستجوگر یک “برنامه اسکلت” ایده آل است که می توانید بیشتر روی آن بسازید، اما یک رویکرد اساسی برای بازیابی (fetching) داده های وب را نشان می دهد.

وارد کردن کتابخانه ها در پایتون

برای شروع پروژه، باید کتابخانه درخواست ها را در پایتون با تابع import وارد کنید.

import requests

کتابخانه Requests برای برقراری ارتباط با وب سایت ها مفید است. می توانید از آن برای ارسال درخواست های HTTP و دریافت داده های پاسخ استفاده کنید.

آدرس های وب سایت را در یک لیست ذخیره کنید

پس از وارد کردن کتابخانه، باید URL های وب سایت را در یک لیست تعریف و ذخیره کنید. این مرحله به شما امکان می دهد چندین URL را حفظ کنید که می توانید آنها را با جستجوگر وب سایت بررسی کنید.

import requests

website_url = [
“https://www.google.co.in“,
“https://www.yahoo.com”,
“https://www.amazon.co.in“,
“https://www.pipsnacks.com/404“,
“http://the-internet.herokuapp.com/status_codes/301“,
“http://the-internet.herokuapp.com/status_codes/500
]

متغیر website_url لیست URL ها را ذخیره می کند. در داخل لیست، هر URL را که می خواهید بررسی کنید به عنوان یک رشته جداگانه تعریف کنید. می‌توانید از آدرس‌های اینترنتی مثال در کد برای آزمایش استفاده کنید یا می‌توانید آنها را جایگزین کنید تا فوراً سایت‌های خود را بررسی کنید.

سپس، پیام‌ها را برای کدهای پاسخ HTTP معمولی ذخیره کنید. می‌توانید اینها را در فرهنگ لغت نگه دارید و هر پیام را با کد وضعیت مربوطه آن فهرست کنید. سپس برنامه شما می تواند از این پیام ها به جای کدهای وضعیت برای خوانایی بهتر استفاده کند.

statuses = {
200: “Website Available”,
301: “Permanent Redirect”,
302: “Temporary Redirect”,
404: “Not Found”,
500: “Internal Server Error”,
503: “Service Unavailable”
}

ایجاد یک حلقه برای بررسی وضعیت وب سایت

برای بررسی هر URL به نوبه خود، باید لیست وب سایت ها را مرور کنید. در داخل حلقه، وضعیت هر سایت را با ارسال درخواست از طریق کتابخانه درخواست ها بررسی کنید.

for url in website_url:
try:
web_response = requests.get(url)
print(url, statuses[web_response.status_code])

except:
print(url, statuses[web_response.status_code])

جایی که:

  •  برای url… روی لیست URL ها تکرار می شود.
  •  url متغیری است که حلقه for هر URL را به آن اختصاص می دهد.
  •  try/except هر استثنایی که ممکن است ایجاد شود را کنترل می کند.
  •  web_response متغیری است که یک ویژگی را با کد وضعیت پاسخ ارائه می دهد

کل قطعه کد The Entire Code Snippet

اگر ترجیح می دهید کل کد را یکباره مرور کنید، در اینجا لیست کد کاملی برای مرجع وجود دارد.

import requests

website_url = [
https://www.google.co.in“,
https://www.yahoo.com“,
https://www.amazon.co.in“,
https://www.pipsnacks.com/404“,
http://the-internet.herokuapp.com/status_codes/301“,
http://the-internet.herokuapp.com/status_codes/500
]

statuses = {
200: “Website Available”,
301: “Permanent Redirect”,
302: “Temporary Redirect”,
404: “Not Found”,
500: “Internal Server Error”,
503: “Service Unavailable”
}

for url in website_url:
try:
web_response = requests.get(url)
print(url, statuses[web_response.status_code])

except:
print(url, statuses[web_response.status_code])

و در اینجا نمونه ای از اجرای کد است:

وضعیت وب سایت در پایتون
وضعیت وب سایت در پایتون

قابلیت های کدنویسی پایتون در اسکراپینگ وب

کتابخانه های شخص ثالث پایتون برای کارهایی مانند خراش دادن وب و بازیابی داده ها از طریق HTTP ایده آل هستند.

شما می توانید درخواست های خودکار را برای انجام انواع مختلف وظایف به وب سایت ها ارسال کنید. اینها ممکن است شامل خواندن سرفصل های اخبار، دانلود تصاویر و ارسال ایمیل به صورت خودکار باشد.

 

امتیاز این مطلب
محسن دادار
نوشته شده توسط

محسن دادار

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

دیدگاهتان را بنویسید

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

گوگل فارکس آموزش تخصصی آمارکتس