Amirhossein Abutalebi
Amirhossein Abutalebi
خواندن ۵ دقیقه·۲ سال پیش

عکس Bing رو دانلود کردی یا چی !!!

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


تو این نوشته قرار که بریم و عکس پس زمینه bing رو دانلود کنیم . البته چون بخوایم هر روز دانلود کنیم سخته برای همین می خوایم با چند خط کد این کار رو انجام بدیم.

البته که در ویندوز و لینوکس با میزکار Gnome و Kde نرم افزار دانلود عکس Bing هست اما توی میزکار XFCE چنین برنامه تا الان نبوده شاید هم باشه اما من ندیم البته شاید هم تو میزکار های دیگه هم نباشه نمی دونم اما خبری نیست بجای اینکه بریم دنباله برنامه میام و خودمون یه BingWallpaper می نویسیم.

دوستان عزیزم می تونید برید توی پیج پایین و بعد از ستاره دادن به ریپوزیتوری و دانلود کردن , از این کدی که من نوشتم هم استفاده کنید .(به صورت گرافیکی با qt5 هم هست)

https://github.com/AmirhosseinAbutalebi/BingwallpaperXFCE

خب بریم تا سریع عکس امروز رو از دست ندیم و دانلود کنیم.


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

#!/usr/bin/python3

خب توی این برنامه ما از json و request استفاده می کنیم تا عکس رو بگیرم و دانلود کنیم حالا بریم ببینیم چطوری!!!

خب بعد از شبنگ کتابخونه ها رو اضافه می کنیم :

import json, urllib.request
from urllib.request import urlopen

خب حالا ما از کجا باید عکس رو دانلود کنیم؟ الان بهتون میگم:

BingURL = 'https://www.bing.com'
URL = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-Us'

خب اولین url برای سایت bing که برای دانلود نیاز میشه و دومین url هم url کمکی هست که اسم و url عکس رو در میاریم و با اضافه کردن به url سایت bing عکس رو دانلود میکنیم .

البته یک نکته ای هست که ما داریم عکسی که برای منطقه آمریکا هست رو دانلود می کنیم و شما می تونید بجای en-US منطقه یا region دیگه ای رو بنویسید البته که همه جا عکس ها یکیه فقط کشور هایی مثل ژاپن و ... چون یکمی جلوترن عکس روز بعد دیگه منطقه ها رو نشون میده و تفاوتی ندارن.

خب حالا که همچی آماده است بریم برای گرفتن اطلاعات صفحه با این دستور:

pageData = json.loads(urlopen(URL).read().decode("utf-8"))

خب حالا که اطلاعات url کمکی رو گرفتیم باید اسم عکس و لینک عکس که به url اصلی یعنی Bing اضافه میشه رو از توی این اطلاعات بکشیم بیرون چطوری؟؟؟ این طوری:

imageDate = pageData['images']
link = imageDate[0]['url']
name = imageDate[0]['copyright'].split(" (")[0]
name = name + ".jpg"

خب حالا هم اسم رو داریم هم لینک و میتونیم دایرکتوی برای ذخیره شدن عکس رو هم مشخص کنیم و بریم برای دانلود کردن عکس Bing .

output = outputdirectory + name

دوستان outputdirectory دایرکتوری که می خواهید عکس ذخیره شه پس باید یا قبل از این کد تعریف کنید یا جای این متغیر دایرکتوری رو بنویسید مثلا توی لینوکس چیزی مثل این میشه:

outputdirectory = "/home/user/Pictures/"

خب دیگه تمومه و باید بریم برای دانلود :

urllib.request.urlretrieve(BingURL + link, output)

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


اینم تمومه کدها کنار هم اگه میخوای سریع کپی پیست کنی ؛)

#!/usr/bin/python3
import json, urllib.request
from urllib.request import urlopen
BingURL = 'https://www.bing.com' # base url
URL = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-Us'
# url for get information of image
pageData = json.loads(urlopen(URL).read().decode("utf-8")) # get information of image
imageDate = pageData['images'] # just get information image
link = imageDate[0]['url'] # get url
name = imageDate[0]['copyright'].split(" (")[0] # get name of image
name = name + ".jpg" # add extention
outputdirectory = "/home/user/Pictures/" # directory of save image
output = outputdirectory + name # prepare of directory
urllib.request.urlretrieve(BingURL + link, output) # download image

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

خب حالا باید با cron و anacron کار کنیم که یه فایل اجرایی به صورت خودکار اجرا بشه حالا این دوتا دستور چی هستن اصلا با کی کار دارن . بریم ببینیم !!!

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

دستور anacron میاد و یه برنامه که به صورت اجرایی در اومده رو روزانه و یا ماهانه و یا هفتگی و یا ... رو بعد از چند دقیقه روشن شدن سیستم که خودتون مشخص میکنید اجرا میکنه.

خب پس ما با anacron کارمون راه میوفته حالا اینکه چطوری باید با anacron کار کنیم و اینا من شما رو با Google و امثالش آشنا می کنم که با سرچ کردن به جواب برسید و اینکه توی دایرکتوری /var/spool/anacron/ باید چیکار کنید یا چه بلایی سر فایل etc/anacrontab/ بیارید دیگه با خودتونه و بستگی به نوع کانفیگ خودتون داره که اصلا میخواید هر روز عکس دانلود شه یا هفته ای یه بار یا سه روز یه بار و یا .... .


راستی حتما به گیت هابم سر بزنید و به ریپوزیتوری ها ستاره بدین و از برنامه ها استفاده کنید و اگه باگی چیزی داشت حتما بهم یادآوری کنید اینم لینکش :

https://github.com/AmirhosseinAbutalebi

امیدوارم که خوشتون اومده باشه اگه جایی هم اشتباه گفتم یا نوشتم بهم بگین تا درستش کنم.

ممنونم که تا اینجا بودین و خوندین تا نوشته ای دیگه خدافظی ♥ .

عکس bingbing دانلودلینوکسxfceپایتون
شاید از این پست‌ها خوشتان بیاید