استفاده از Unsplash API بهویژه همراه با ماژول درخواستهای پایتون آسان است. از همین امروز با استفاده از این ابزارها واکشی تصاویر نمونه را شروع کنید.
اگر در حال توسعه یا طراحی یک وب سایت هستید، احتمالاً باید برخی از تصاویر موجود را در دست داشته باشید. آنها می توانند برای نمونه سازی یا حتی استفاده در برنامه تولید شما مفید باشند.
شما به راحتی می توانید با استفاده از زبان همیشه دوستانه Python یک واکشی تصادفی تصویر بسازید. میتوانید از آن برای نمایش تصاویر تصادفی در یک ویجت، تست تغییر وضوح، یا نمایش موتور توصیه محصول استفاده کنید.
برای به دست آوردن تجربه عملی با ماژول Requests and Pillow، این پروژه را دنبال کنید. آنها برای کارهای وب آینده، از جمله پردازش تصویر، مفید خواهند بود.
ماژول های درخواست ها و بالش
ماژول Requests انجام درخواستهای HTTP را ساده میکند و یک شی پاسخ حاوی دادههایی مانند رمزگذاری و وضعیت را برمیگرداند. با استفاده از این، می توانید بسیاری از برنامه های کاربردی جالب مانند بررسی وضعیت وب سایت، اسکریپر وب، ربات نظارت بر بازار سهام و تستر عملکرد وب سایت را توسعه دهید. برای نصب ماژول Requests، ترمینال را باز کرده و تایپ کنید:
pip install requests
کتابخانه Pillow – شاخه ای از کتابخانه تصویربرداری پایتون (PIL) – قابلیت های پردازش تصویر را ارائه می دهد که به ویرایش، ایجاد، تبدیل فرمت فایل ها و ذخیره تصاویر کمک می کند. این سازگاری گسترده با فرمت فایل و یک نمایش داخلی مفید را ارائه می دهد. برای نصب ماژول Pillow، ترمینال را باز کرده و تایپ کنید:
pip install Pillow
چگونه با استفاده از پایتون یک واکشی تصادفی تصویر بسازیم
شما می توانید کد منبع واکشی تصادفی تصویر را با استفاده از پایتون در این مورد پیدا کنید
مخزن GitHub
.
ماژول ها را وارد کنید و تابعی به نام img_requests () تعریف کنید که txt را به عنوان پارامتر ورودی می گیرد. یک متد GET را به URL API Unsplash ارسال کنید و از روش قالب بندی برای پر کردن مکان نگهدار {0} با مقدار txt استفاده کنید. پاسخ مطالب را با فرمت JPG ذخیره کنید و تصویر را باز کنید تا کاربر بتواند آن را مشاهده کند. در نهایت فایل باز شده را ببندید.
import requests
from PIL import Image
def img_requests(txt):
response = requests.get("https://source.unsplash.com/random{0}".format(txt))
file = open('image.jpg', 'wb')
file.write(response.content)
img = Image.open(r"image.jpg")
img.show()
file.close()
نمایش گزینه های مختلف برنامه برای کاربر. چهار گزینه اول بسته به انتخاب، تصویری را با وضوح HD، Full HD، 2K یا 4K دریافت می کنند. اگر کاربر گزینه پنجم را انتخاب کند، باید یک کلمه کلیدی ارائه کند. بر اساس آن، برنامه یک تصویر مناسب را انتخاب کرده و در سیستم ذخیره می کند.
print("""Please provide an option for Image
1. HD Random Picture
2. FHD Random Picture
3. 2K Random Picture
4. 4k Random Picture
5. Picture with User Provided Keyword """)
انتخاب کاربر را دریافت کنید، یک پیام مناسب را نمایش دهید، و تابع img_requests را فراخوانی کنید و متن مناسب را برای درخواست آنها ارسال کنید.
ans = input()
if 'one' in ans or '1' in ans:
print("Please wait while we fetch an HD image.")
img_requests('/1280x720')
elif 'two' in ans or '2' in ans:
print("Please wait while we fetch a Full HD image.")
img_requests('/1920x1080')
elif 'three' in ans or '3' in ans:
print("Please wait while we fetch a 2k image.")
img_requests('/2048x1080')
elif 'four' in ans or '4' in ans:
print("Please wait while we fetch a 4k image.")
img_requests('/4096x2160')
گزینه پنجم کمی پیچیده تر است. اگر کاربر آن را انتخاب کرد، از او بخواهید کلمات کلیدی خود را وارد کند. یک علامت سوال در مقابل کلمه کلیدی اضافه کنید و تابع را فراخوانی کنید تا یک تصویر تصادفی مطابق با ورودی واکشی شود.
elif 'five' in ans or '5' in ans:
print("Please enter a keyword you want to get a random image of.")
st = input()
st = "?" + st
print("Please wait while we fetch the images from our database.")
img_requests(st)
اگر کاربر مورد دیگری را وارد کرد، از او بخواهید ورودی معتبری ارائه دهد:
else:
print("Please provide a valid input.")
همه کدها را کنار هم قرار دهید و از واکشی تصاویر تصادفی با وضوح بالا لذت ببرید.
خروجی واکشی تصادفی تصویر
در اجرای برنامه بالا، برنامه پنج گزینه را نمایش می دهد. با انتخاب هر یک از گزینه ها، برنامه یک تصویر را ذخیره کرده و روی صفحه نمایش می دهد.
اگر گزینه 5 را انتخاب کنید و کلمه کلیدی Spider-Man را وارد کنید، برنامه تصویر مرد عنکبوتی زیر را از Unsplash دریافت کرده است.
خراش دادن وب با استفاده از پایتون
بسیاری از سایتها APIهای مفیدی مانند واکشی تصادفی تصویر Unsplash ارائه میکنند. اما برای کسانی که این کار را نمی کنند، همیشه می توانید به اسکراپینگ وب متوسل شوید و ماژول Requests می تواند کمک کند.
ماژول های مفید دیگر عبارتند از Beautiful Soup، Selenium، Scrapy، Urllib و Mechanize. می توانید از وب اسکرپینگ برای استخراج اطلاعات از هر وب سایت، ذخیره سازی و تجزیه و تحلیل آن بر اساس نیاز خود استفاده کنید.
برخی از برنامههایی که میتوانید با استفاده از این تکنیک توسعه دهید عبارتند از اسکریپر خبری، ردیاب قیمت و دانلود کننده تصویر. Web Scraping همچنین به طور گسترده در پردازش زبان طبیعی برای آموزش مدل ها و انجام تجزیه و تحلیل احساسات استفاده می شود.