نوشتن برنامه ی بدست آوردن مدل گوشی از طریق عکس در پایتون :: Mr Python | مستر پایتون

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

  • ۸۹۱

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

درود به همه .

 

در پست قبلی یاد گرفتیم چطوری به وسیله ی ابزار "exif" مدل گوشی رو از روی عکس گرفته شده توسط گوشی بفهمیم  . در این پست میخوایم یه ابزاری با پایتون بنویسیم که عکس رو بهش بدیم و خودش مدل گوشی رو تشخیص بده تازه خودش هم اطلاعات گوشی رو در گوگل برامون سرچ کنه خودکار‌! خب برای درک این مطلب چنتا پیش نیاز دارین .  ۱ - پایتون بلد باشین   ۲ - پست قبل رو دیده باشین و انجام داده باشین .

برای اینکه پست قبل رو ببینید به آدرس زیر برید :‌

https://mrpython.blog.ir/post/10    

 

خب میریم سراغ آموزش.

 

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

 

خب اول باید کتابخونه ی exif  رو روی پایتونمون نصب کنیم . با این کتابخونه میتونیم فراداده های ذخیره شده داخل عکس رو ببینیم و میدونید که مدل گوشی هم داخل همیناس پس میتونیم مدل گوشی رو هم ببینیم . برای نصب این کتابخونه از ابزار pip3 استفاده میکنیم چون میخوایم روی پایتون ۳ نصب کنیم از ورژن 3 در pip استفاده کردیم . دستور زیر کتابخونه رو نصب میکنه روی پایتونمون :‌

 

MrPython@debian:~$ pip3 install exif 

 

ابتدا یک فایل پایتون میسازیم :

MrPython@debian:~$ touch auto-exif.py

 

خب راجب کد بالا باید بگم که دستور touch بیشتر برای ساخت فایل های جدید در لینوکس و دستکاری و تغییر تاریخ فایلا به کار میره که ما با دستور بالا یک فایل به نام auto-exif.py ساختیم .

 

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

 

وقتی فایل رو باز کردین کد های زیر رو داخلش مینویسیم :

from os import popen
from exif import Image
pic = input ("Picture Address : ")
img = Image(open(pic,"rb"))
try:
    model = img.model
except:
    exit()
print("Model : {}".format(model))
command = "firefox https://www.google.com/search?q=\"{}\"".format(model)
popen(command)

 

خب بعد از نوشتن این کد ها اون ها رو ذخیره کنید .

خب یه توضیح کوچولو در مورد کد ها بدم .

قبل از هر چیزی کتابخونه های مورد نیاز رو با import وارد برنامه کردیم .

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

بعد اومدیم یه حرکت قشنگ زدیم . اونو توسط تابع open در مد باینری بازش کردیم و سپس دادیمش به تابع Image از کتابخانه ی exif که برامون اطلاعات  عکس رو در بیاره و همرو کلا ریختیم داخل متغییر img

و بعدش هم اومدیم متغییر model رو برابر کردیم با img.model که همون مدل گوشیه .

و بعدش هم اومدیم یه دستور بش ساختیم ریختیم داخل متغییر command که اگه این اجرا بشه در واقع میره یه مرورگر باز میکنه و مدل گوشی رو داخل گوگل سرچ میکنه .

بعدش هم توسط تابع popen اومدیم این کامند یا دستور بش رو اجرا کردیم .

 

خب اینم یه توضیح کوچولو .

 

برای اجرا کردن این فایل میتونید شبانگ بهش بدین و دسترسی اجرایی و بعدش با "auto-exif.py./" اجراش کنید یا اینکه خیلی راحت از طریق خود پایتون و با وارد کردن دستور زیر در ترمینال اجراش کنید :

MrPython@debian:~$ python3 auto-exif.py

 

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

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

۱ - اگه کتابخونه هاشو پیدا نکنه

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

 

و ...

 

حالا اگه اروری دیگه ای داد که نتونستین مشکلو حل کنید در بخش نظرات مطرح کنیدتا برسی کنم ببینم چیه .

 

این برنامه رو یکم کامل ترشو در اگانت گیت هاب من  میتونید پیدا ببینید . آدرس‌:‌

https://github.com/mrpythonblog/detect-mob.git

 

یا حق !

 

نظرات: (۰) هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی