সেদিনের বিংয়ের ছবি পাওয়ার কোনও উপায় আছে কি?


90

প্রোগ্রাম করার জন্য আমি কি ব্যঙ্গ পটভূমি চিত্র পেতে পারি?

বিংয়ের এপিআই এ জাতীয় কার্যকারিতা সরবরাহ করে বলে মনে হচ্ছে না, সম্ভবত অন্য কোনও উপায় আছে?

উত্তর:


114

আমি মনে করি সর্বোত্তম উপায়টি তাদের এজেএক্স কলগুলির মাধ্যমে তারা যেভাবে এটি করে তা অনুকরণ করে।

তারা এই ইউআরএলকে কল করে এবং এক্সএমএল deserialization মাধ্যমে তথ্য আহরণ।

এক্সএমএল: http://www.bing.com/HPImageArchive.aspx?format=xML&idx=0&n=1&mkt=en-US

জেএসএন: http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US

আরএসএস: http://www.bing.com/HPImageArchive.aspx?format=rss&idx=0&n=1&mkt=en-US

mktঅ্যাট্রিবিউট স্পষ্টত'en-US' তুলনায় বিভিন্ন অঞ্চলে পরিবর্তন করা যাবে, কিন্তু সম্পূর্ণভাবে আপনি একটি নির্দিষ্ট অঞ্চল যত্ন সম্পর্কে না নির্বাচন মুক্ত করা যেতে পারে।

দ্রষ্টব্য যে _1366x768.jpgচিত্রের নামের সাথে যুক্ত হওয়া প্রত্যয়টি বিভিন্ন রেজোলিউশনে ( _1920x1080.jpgপুরো এইচডি এবং সম্ভবত অন্যদের জন্য) পরিবর্তিতযোগ্য বলে মনে হয় ।

এক্সএমএল ফর্ম্যাটে এখানে 9/28/2013 পর্যন্ত ডেটা ফেলার জন্য এখানে রয়েছে।

<?xml version="1.0" encoding="utf-8"?>
<images>
    <image>
        <startdate>20130928</startdate>
        <fullstartdate>201309280000</fullstartdate>
        <enddate>20130929</enddate>
        <url>/az/hprichbg/rb/LakeTurkana_EN-US15976511099_1366x768.jpg</url>
        <urlBase>/az/hprichbg/rb/LakeTurkana_EN-US15976511099</urlBase>
        <copyright>Lava rock pools at the southern end of Lake Turkana, in Kenya (© Nigel Pavitt/Corbis)</copyright>
        <copyrightlink>http://www.bing.com/search?q=Lake+Turkana%2C+Kenya&amp;form=hpcapt</copyrightlink>
        <drk>1</drk>
        <top>1</top>
        <bot>1</bot>
        <hotspots>
            <hotspot>
                <desc>These are the southern reaches of a lake...</desc>
                <link>http://www.bing.com/maps/?v=2&amp;cp=2.794725~37.335197&amp;lvl=7&amp;dir=0&amp;sty=b&amp;q=Lake%20Turkana%2C%20Kenya&amp;form=hphot1</link>
                <query>That stretches for 180 miles, up into another country</query>
                <LocX>15</LocX>
                <LocY>33</LocY>
            </hotspot>
            <hotspot>
                <desc>This body of water was once called the Jade Sea.</desc>
                <link>http://www.bing.com/search?q=green+algae&amp;form=hphot2</link>
                <query>What gives the water here its sometimes vibrant hue?</query>
                <LocX>37</LocX>
                <LocY>42</LocY>
            </hotspot>
            <hotspot>
                <desc>One of the world's most powerful predators lives here.</desc>
                <link>http://www.bing.com/videos/search?q=Underwater+Croc+Cams+National+Geographic&amp;FORM=hphot3#view=detail&amp;mid=D25E1909D3514A8732C5D25E1909D3514A8732C5</link>
                <query>See some rare underwater footage of the beast</query>
                <LocX>66</LocX>
                <LocY>33</LocY>
            </hotspot>
            <hotspot>
                <desc>Many fossils of ancient human ancestors have been uncovered in the surrounding area.</desc>
                <link>http://www.bing.com/search?q=Turkana+Boy&amp;form=hphot4</link>
                <query>One skeleton was so complete, paleoanthropologists gave him a name</query>
                <LocX>82</LocX>
                <LocY>41</LocY>
            </hotspot>
        </hotspots>
        <messages></messages>
    </image>
    <tooltips>
        <loadMessage>
            <message>Indlæser...</message>
        </loadMessage>
        <previousImage>
            <text>Forrige</text>
        </previousImage>
        <nextImage>
            <text>Næste</text>
        </nextImage>
        <play>
            <text>Afspil</text>
        </play>
        <pause>
            <text>Pause</text>
        </pause>
    </tooltips>
</images>

13
এফওয়াইআই - আপনি এটি JSON ফর্ম্যাটেও পেতে পারেন! bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
JustMaier

4
বিটিডাব্লু: রেজোলিউশনটি পরিবর্তনযোগ্য, কিছু _1920x1200কাজ পর্যন্ত, যেমন 1920x1080এবং অন্যান্যও।
jmiserez

4
ঠিক আছে, সুতরাং দেখে মনে হচ্ছে যে বিং ডেস্কটপটি বিং. com / এইচপিআইমেজআরচিভ.এএসপিএক্স? ফর্ম্যাট=xML&idx=0&n=1 ব্যবহার করে , যার কোনও &mkt=en-USঅংশ নেই। যদিও আমার কাছে অ্যাপ্লিকেশনটি "ইংলিশ-আমেরিকা যুক্তরাষ্ট্র" তে সেট করা আছে।
jmiserez

4
নিবন্ধন করুন আপনি এমন একটি ওয়েব-পরিষেবা তৈরি করতে পারেন যা আপনার জন্য ডেটা প্রক্স করে। সাধারণত, একটি ব্যবহার করবে jsonp, তবে মনে হয় না যে তারা এটির অনুমতি দেয়।
ম্যাথিয়াস লাইককেগার্ড লরেনজেন

4
যদি কেউ বাজারের জায়গাগুলি সন্ধান করে ... আপনি এটি মাইক্রোসফট.ইন- ইন
লোকেল.এএসপিএক্স

33

বিংসের চিত্রের JSON ফর্ম্যাট

আমি আনতে একটি উপায় খুঁজে পাওয়া JSON ফর্ম্যাটে এর বিং চিত্র দিনের

http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1

বিঃদ্রঃ

      n=আপনার ইমেজগুলির সংখ্যা (আপনি পূর্ণসংখ্যার ব্যবহার করতে পারেন ),
      mkt=আপনার অবস্থান (উদাহরণ: এন-ইউএস )


এখানে JSON আউটপুটটি দেখতে বেশ ভাল লাগে

  {
  "images": [
    {
      "startdate": "20141214",
      "fullstartdate": "201412141830",
      "enddate": "20141215",
      "url": "\/az\/hprichbg\/rb\/BlackButte_EN-IN7038391888_1920x1080.jpg",
      "urlbase": "\/az\/hprichbg\/rb\/BlackButte_EN-IN7038391888",
      "copyright": "Black Butte, seen from the Mount Jefferson Wilderness, Oregon, USA (\u00a9 Marc Adamus\/Aurora Photos)",
      "copyrightlink": "http:\/\/www.bing.com\/search?q=Black+Butte&qs=n&form=hpcapt&mkt=en-in&pq=black+butte&sc=8-11&sp=-1&sk=&cvid=228ac7f125f94bbaafd4a4abd4f9a32d",
      "wp": true,
      "hsh": "94156ae1e2e1be49f9b739d2b7bff65c",
      "drk": 1,
      "top": 1,
      "bot": 1,
      "hs": [

      ],
      "msg": [
        {
          "title": "How does it feel\u2026",
          "link": "http:\/\/www.bing.com\/videos\/search?q=Climbing+Black+Butte&FORM=pgbar1&mkt=en-in#view=detail&mid=58BDB2F2B9FCB85D597558BDB2F2B9FCB85D5975",
          "text": "To climb 1961.7 m?"
        },
        {
          "title": "On top of the world",
          "link": "http:\/\/www.bing.com\/images\/search?q=Pictures+From+the+Top+of+Mount+Everest&FORM=pgbar2&mkt=en-in",
          "text": "It's mountaineer's dream view"
        }
      ]
    }
  ],
  "tooltips": {
    "loading": "Loading...",
    "previous": "Previous",
    "next": "Next",
    "walle": "This image is not available to download as wallpaper.",
    "walls": "Download this image. Use of this image is restricted to wallpaper only."
  }
}

urlথেকে ব্যবহার করুনimages[]

এবং এটি যোগ করুন 'http://bing.com'

এখানে ইউআরএল হয় "url": "\/az\/hprichbg\/rb\/DayGecko_EN-US8730336235_1366x768.jpg"


দেখে মনে হচ্ছে যে বিং একবারে মোট প্রতিক্রিয়া সংখ্যা 8 হতে সীমাবদ্ধ করে। 8 টি এন = 8 দিয়ে সংগ্রহ করা যেতে পারে এবং তার আগের 8 টি আইডিএক্স = 8 এবং n = 8 সেট করে সংগ্রহ করা যেতে পারে। আমি এটিকে প্রসারিত করার কোনও উপায় দেখছি না।
ফ্লফি রোবট

কেন এটা ত্রুটি প্রদান এর Unexpected token :মধ্যেhttps://www.bing.com/HPImageArchive.aspx?format=js&idx=8&n=8&mkt=en-US&callback=jQuery111100034959779751375653_1518009655771&_=1518009655772
রোহিত শর্মা

10

মাইক্রোসফ্ট সম্প্রতি উইন্ডোজ 7 এর জন্য একটি বিং ডায়নামিক থিম প্রকাশ করেছে , এতে বিং ওয়ালপেপারগুলির লিঙ্কগুলির সাথে একটি আরএসএস ফিড রয়েছে ।

এখানে একটি পাইথন স্ক্রিপ্টও রয়েছে যা বিং ওয়েবসাইটটি লোড করতে এবং সঠিক চিত্রের URL অনুমান করার চেষ্টা করে, তবে আমার অভিজ্ঞতা থেকে এটি আরএসএস ফিড দ্বারা প্রস্তাবিত তুলনায় সাধারণত কম রেজোলিউশন ইমেজের ফলাফল করে।


আরএসএসের লিঙ্কটির জন্য +1, আমি মনে করি এটিই প্রশ্নের আসল উত্তর
ডেভিড কনডে

4
দুর্ভাগ্যক্রমে থিমটি বন্ধ করা হয়েছে, বা মাইক্রোসফ্ট যেমন বলেছে: "এই থিমটি অবসর নিয়েছে"। আরএসএস এখনও আছে, তবে এটি আর আপডেট হচ্ছে না।
কারাফিয়র


6

একটি লাইনার পাওয়ারশেল (3.0 বা তার বেশি)

irm জন্য একটি উপনাম Invoke-RestMethod

irm "bing.com$((irm "bing.com/HPImageArchive.aspx?format=js&mkt=en-IN&n=1").images[0].url)" -OutFile bing.jpg

4
উজ্জ্বল! আমার জন্য নিখুঁতভাবে কাজ করেছেন :)
লিয়ামহরিজ

4

আমি বিং চিত্রগুলিও পছন্দ করি তবে তাদের অ্যাপ্লিকেশনটি চিত্র ডাউনলোড করার উদ্দেশ্যে খুব বেশি ফুলে যায়। ফিডলারের সাথে সংযোগ বিশ্লেষণ করার পরে, আমি এই কোডটি লিখেছি। 1920x1200 বিং লোগো এম্বেড সহ আসে তবে নিম্ন রেজোলিউশনে এটি থাকে না।

আপনি যে ইমেজ ফোল্ডারটি সেট করেছেন সেটি উইন্ডোজ আপনাকে র্যান্ডম চিত্রগুলি প্রদর্শন করতে পারে, তাই আপনি প্রতিদিন এটি ডাউনলোড করার সাথে সাথে এটি আপনাকে আরও এলোমেলো চিত্র দেখাবে। আপনি যদি "ইমেজডির" রাখেন, আপনাকে সেই ফোল্ডারে অনুমতিগুলি পরিবর্তন করতে হবে বা এটি ক্র্যাশ হয়ে যাবে, আমি ত্রুটিগুলি ধরা নিয়ে বিরক্ত করি না। শেষ অবধি, আপনি যদি আজকের ছবিতে আপনার ওয়ালপেপার সেট করতে চান বা প্রোগ্রাম চালানোর জন্য আপনি কোনও টাস্ক তৈরি করতে চান তবে লাইনগুলি অন-মন্তব্য করুন, লগনের এক মিনিট পরে বলুন।

using System;
using System.IO;
using System.Net;
//using System.Runtime.InteropServices;

namespace Bing
{
    class Program
    {
      //  [DllImport("user32.dll", CharSet = CharSet.Auto)]
      //  private static extern Int32 SystemParametersInfo(UInt32 uiAction, UInt32 uiParam, String pvParam, UInt32 fWinIni);
        private static String imgDir = @"C:\Windows\Web\Wallpaper\Bing\";

        static void Main(string[] args)
        {
            String imageFileName;
            if (!Directory.Exists(imgDir))
                Directory.CreateDirectory(imgDir);

            for (byte i = 6; i >= 0; i--)
            {
                imageFileName = imgDir + DateTime.Today.AddDays(-i).ToString("yyy-MM-dd") + ".jpg";

                if (!File.Exists(imageFileName))
                {
                    string response = null;
                    Connect(ref response, i);
                    ProcessXml(ref response);
                    using (WebClient client = new WebClient())
                        client.DownloadFile("http://www.bing.com" + response + "_1920x1200.jpg", imageFileName);
                }                
            }
            //SystemParametersInfo(20, 0, imageFileName, 0x01 | 0x02);
        }

        private static void Connect(ref string res, byte i)
        {
            HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create("http://www.bing.com/hpimagearchive.aspx?format=xml&idx=" + i + "&n=1&mbl=1&mkt=en-ww");
            webrequest.KeepAlive = false;
            webrequest.Method = "GET";
            using (HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse())
                using (StreamReader loResponseStream = new StreamReader(webresponse.GetResponseStream()))
                    res = loResponseStream.ReadToEnd();                
        }

        private static void ProcessXml(ref string xmlString)
        {
            using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(new StringReader(xmlString)))
            {
                reader.ReadToFollowing("urlBase");
                xmlString = reader.ReadElementContentAsString();
            }
        }        
    }
}


2

এই জাভাস্ক্রিপ্ট একটি 'ডিআইপি'র ব্যাকগ্রাউন্ড ইমেজটিকে বর্তমান দিনের বিং চিত্রের পটভূমিতে পরিবর্তন করে' এপিআই দিয়ে কী করবে 'তার জবাব দেবে।

function PullBackground() {
    var ajaxRequest = new XMLHttpRequest(), background = ''; 
    ajaxRequest.open('POST', "http://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=en-US", true);
    ajaxRequest.setRequestHeader("Connection", "close");
    ajaxRequest.send('');
    ajaxRequest.onreadystatechange = function () {
        if (ajaxRequest.readyState == 4) {
            background = ajaxRequest.responseText;
            var res = background.split("<url>"); 
            var res1 = res[1].split("</url>");
            background = res1[0];

            document.getElementById('NameOfTheDivToChange').style.backgroundImage = "url('http://bing.com" + background + "')"
            document.getElementById('NameOfTheDivToChange').style.backgroundSize = "100%";
        }
    }
}

4
আমি সত্যিই এটি ব্যবহার করতে চেয়েছিলাম তবে এটি "অ্যাক্সেস-কন্ট্রোল-অলজিন-অরিজিন" এর অভাবটি বিং দ্বারা সেট করা বলে মনে হচ্ছে না।
অ্যাডমিট

2

যদি কেউ সম্ভাব্য বাস্তবায়নগুলির সন্ধান করে, আমি সি # তে একটি ছোট কমান্ড-লাইন প্রোগ্রাম লিখেছি, ডাউনলোড করতে, সংরক্ষণ করতে এবং আমার ব্যাকগ্রাউন্ডটিকে দিবসের বিগ ইমেজ হিসাবে সেট করেছি। আপনার ব্যক্তিগত প্রয়োজনে এটি নির্দ্বিধায় নির্দ্বিধায়। https://github.com/josueespinosa/BingBackground

using Microsoft.Win32;
using Newtonsoft.Json;
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace BingBackground
{
    class BingBackground
    {
        private static void Main(string[] args)
        {
            string urlBase = GetBackgroundUrlBase();
            Image background = DownloadBackground(urlBase + GetResolutionExtension(urlBase));
            SaveBackground(background);
            SetBackground(background, PicturePosition.Fill);
        }

        private static dynamic DownloadJson()
        {
            using (WebClient webClient = new WebClient())
            {
                Console.WriteLine("Downloading JSON...");
                string jsonString = webClient.DownloadString("https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US");
                return JsonConvert.DeserializeObject<dynamic>(jsonString);
            }
        }

        private static string GetBackgroundUrlBase()
        {
            dynamic jsonObject = DownloadJson();
            return "https://www.bing.com" + jsonObject.images[0].urlbase;
        }

        private static string GetBackgroundTitle()
        {
            dynamic jsonObject = DownloadJson();
            string copyrightText = jsonObject.images[0].copyright;
            return copyrightText.Substring(0, copyrightText.IndexOf(" ("));
        }

        private static bool WebsiteExists(string url)
        {
            try
            {
                WebRequest request = WebRequest.Create(url);
                request.Method = "HEAD";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                return response.StatusCode == HttpStatusCode.OK;
            }
            catch
            {
                return false;
            }
        }

        private static string GetResolutionExtension(string url)
        {
            Rectangle resolution = Screen.PrimaryScreen.Bounds;
            string widthByHeight = resolution.Width + "x" + resolution.Height;
            string potentialExtension = "_" + widthByHeight + ".jpg";
            if (WebsiteExists(url + potentialExtension))
            {
                Console.WriteLine("Background for " + widthByHeight + " found.");
                return potentialExtension;
            }
            else
            {
                Console.WriteLine("No background for " + widthByHeight + " was found.");
                Console.WriteLine("Using 1920x1080 instead.");
                return "_1920x1080.jpg";
            }
        }

        private static Image DownloadBackground(string url)
        {
            Console.WriteLine("Downloading background...");
            WebRequest request = WebRequest.Create(url);
            WebResponse reponse = request.GetResponse();
            Stream stream = reponse.GetResponseStream();
            return Image.FromStream(stream);
        }

        private static string GetBackgroundImagePath()
        {
            string directory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Bing Backgrounds", DateTime.Now.Year.ToString());
            Directory.CreateDirectory(directory);
            return Path.Combine(directory, DateTime.Now.ToString("M-d-yyyy") + ".bmp");
        }

        private static void SaveBackground(Image background)
        {
            Console.WriteLine("Saving background...");
            background.Save(GetBackgroundImagePath(), System.Drawing.Imaging.ImageFormat.Bmp);
        }

        private enum PicturePosition
        {
            Tile,
            Center,
            Stretch,
            Fit,
            Fill
        }

        internal sealed class NativeMethods
        {
            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            internal static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
        }

        private static void SetBackground(Image background, PicturePosition style)
        {
            Console.WriteLine("Setting background...");
            using (RegistryKey key = Registry.CurrentUser.OpenSubKey(Path.Combine("Control Panel", "Desktop"), true))
            {
                switch (style)
                {
                    case PicturePosition.Tile:
                        key.SetValue("PicturePosition", "0");
                        key.SetValue("TileWallpaper", "1");
                        break;
                    case PicturePosition.Center:
                        key.SetValue("PicturePosition", "0");
                        key.SetValue("TileWallpaper", "0");
                        break;
                    case PicturePosition.Stretch:
                        key.SetValue("PicturePosition", "2");
                        key.SetValue("TileWallpaper", "0");
                        break;
                    case PicturePosition.Fit:
                        key.SetValue("PicturePosition", "6");
                        key.SetValue("TileWallpaper", "0");
                        break;
                    case PicturePosition.Fill:
                        key.SetValue("PicturePosition", "10");
                        key.SetValue("TileWallpaper", "0");
                        break;
                }
            }
            const int SetDesktopBackground = 20;
            const int UpdateIniFile = 1;
            const int SendWindowsIniChange = 2;
            NativeMethods.SystemParametersInfo(SetDesktopBackground, 0, GetBackgroundImagePath(), UpdateIniFile | SendWindowsIniChange);
        }
    }
}

2

কটাক্ষপাত আছে Bing-ডেস্কটপ-ওয়ালপেপার-চেঞ্জার উপর গিটহাব । স্ক্রিপ্টটি অজগরে লেখা হয়েছে এবং আমি আশা করি আপনি সেখানে আপনার উত্তর খুঁজে পেয়েছেন।

#!/usr/bin/python
#-*- coding: utf-8 -*-

import os
import urllib
import urllib2
from bs4 import BeautifulSoup

# Get BingXML file which contains the URL of the Bing Photo of the day
# idx = Number days previous the present day. 0 means current day, 1 means       yesterday, etc
# n = Number of images predious the day given by idx
# mkt denotes your location. e.g. en-US means United States. Put in your  country code
BingXML_URL = "http://www.bing.com/HPImageArchive.aspx?     format=xml&idx=0&n=1&mkt=en-US"
page = urllib2.urlopen(BingXML_URL)
BingXML = BeautifulSoup(page, "lxml")

# For extracting complete URL of the image
Images = BingXML.find_all('image')
ImageURL = "https://www.bing.com" + Images[0].url.text
ImageName = Images[0].startdate.text+".jpg"

urllib.urlretrieve(ImageURL, ImageName)

বিস্তারিত কোডের জন্য গিথুব প্রকল্পটি দেখুন


4
দারূন কাজ! এটি একটি ওমগুবুন্টু নিবন্ধেও ফিউচার করা হয়েছে: omgubuntu.co.uk/2016/08/set-bing-wallpaper-linux-a स्वतः
ওয়াটওয়ার

@ ওয়াটওয়ার আমাকে জানাতে অনেক ধন্যবাদ! :)
উত্কর্ষ গুপ্ত

2

সিম্পল পাওয়ারশেল, একটি ফোল্ডারে রাখুন, উইন্ডোজ টাস্ক শিডিয়ুলারে একটি দৈনিক টাস্ক তৈরি করুন, স্ক্রিপ্টটি তার রান ফোল্ডারে চিত্রগুলি সংরক্ষণ করে, তারপরে আপনার ডেস্কটপ ব্যাকগ্রাউন্ড সেটিংসে সেই ফোল্ডারটিকে ব্যাকগ্রাউন্ড হিসাবে বেছে নিন।

[xml]$doc = (New-Object System.Net.WebClient).DownloadString("https://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=ru-RU")
$url = $doc.images.image.url
$url = "https://www.bing.com/" + $url -replace "_1366x768","_1920x1200"

Write-Output $url

$fileName = Split-Path $url -leaf
$output = "$PSScriptRoot\$fileName"

$start_time = Get-Date
Invoke-WebRequest -Uri $url -OutFile $output
Write-Output "Saved to: $output Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)"

একটি টার্গেট ডিরেক্টরিতে দিনের বিং চিত্রটি স্বয়ংক্রিয়ভাবে ডাউনলোড করতে উইন্ডোজে একটি নির্ধারিত কাজ হিসাবে আরও ভাল কাজ করে। দুর্দান্ত।
nonbeing

2

স্রেফ requestsএবং ব্যবহার করে দিনের বিং ফটো আনার জন্য এখানে একটি পাইথন স্ক্রিপ্ট রয়েছে json:

import requests
import json

BING_URI_BASE = "http://www.bing.com"
BING_WALLPAPER_PATH = "/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US"

# open the Bing HPImageArchive URI and ask for a JSON response
resp = requests.get(BING_URI_BASE + BING_WALLPAPER_PATH)

if resp.status_code == 200:
    json_response = json.loads(resp.content)
    wallpaper_path = json_response['images'][0]['url']
    filename = wallpaper_path.split('/')[-1]
    wallpaper_uri = BING_URI_BASE + wallpaper_path

    # open the actual wallpaper uri, and write the response as an image on the filesystem
    response = requests.get(wallpaper_uri)
    if resp.status_code == 200:
        with open(filename, 'wb') as f:
            f.write(response.content)
    else:
        raise ValueError("[ERROR] non-200 response from Bing server for '{}'".format(wallpaper_uri))
else: 
    raise ValueError("[ERROR] non-200 response from Bing server for '{}'".format(BING_URI_BASE + BING_WALLPAPER_PATH))

এটি TurtleTears_EN-US7942276596_1920x1080.jpgসেই একই ডিরেক্টরিতে কোনও ফাইল লিখবে যেখানে স্ক্রিপ্টটি কার্যকর করা হয়। অবশ্যই, এখানে পুরো গুচ্ছ জিনিসগুলি ঝাঁকুনি করতে পারে, তবে যুক্তিসঙ্গতভাবে কাজটি সহজভাবে সম্পন্ন করে।


1

এই জাতীয় ফিডবার্নার ফিডটি বেশ ভালভাবে কাজ করছে বলে মনে না হওয়া অবধি আমি জনগণের ব্যাকগ্রাউন্ড স্যুইচারের সাথে ব্যবহার করতে পারি এমন একটি উপযুক্ত আরএসএস ফিড পেতে আমার সমস্যা হচ্ছে : http://feeds.feedburner.com


1

জাভাস্ক্রিপ্ট এবং পিএইচপি ব্যবহার করে কীভাবে প্রতিদিনের ওয়ালপেপার বিং করতে হয় তা আমি আপনাকে বলি,

এই জেএস কোড ব্যবহার করে দেখুন:

<script>
      fetch('https://techytricks97.000webhostapp.com/')
      .then(response => response.text())
      .then(text=>{document.body.style.background="url('"+text+"')";document.body.style.backgroundSize='cover';});
</script>

এই স্ক্রিপ্টটি আপনার এইচটিএমএল ডকুমেন্টের ব্যাকগ্রাউন্ড হিসাবে দিনের দৈনিক চিত্রটিকে বিং সেট করে (আপনি আরও আপনার ব্যবহার অনুসারে এটি পরিবর্তন করতে পারেন)।

এই লিঙ্ক- https://techytricks97.000webhostapp.com প্রতিদিনের বিং ওয়ালপেপারটি দেয়।

fetch()আজকের বিং চিত্রটির url পেয়েছে https://techytricks97.000webhostapp.comএবং text=>{document.body.style.background="url('"+text+"')";document.body.style.backgroundSize='cover';}এটি পটভূমি হিসাবে সেট করে।

দ্রষ্টব্য: মাইক্রোসফ্ট আপনার সাইটের পটভূমি হিসাবে প্রতিদিনের চিত্রগুলিকে বিং ব্যবহার করতে দেয় না, আপনি ফোন / ডেস্কটপ ওয়ালপেপার হিসাবে ব্যবহার করতে পারেন, বা কপিরাইটের উল্লেখ সহ অন্যান্য জিনিসগুলিতে ব্যবহার করতে পারেন।

এখানে পিএইচপি কোড রয়েছে যা http://techytricks97.000webhostapp.com এ ব্যবহৃত হয় :

<?php
header('Access-Control-Allow-Origin: *');
ini_set('display_errors', 1);
$reg=file_get_contents('https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-IN');
$reg=json_decode($reg);
$meka=$reg->images[0]->url;
echo('http://www.bing.com'.$meka);
?>

আপনি http://techytricks97.000webhostapp.comকেবল ব্যবহার করতে পারেন বা আপনার সার্ভারে আপনার নিজের পিএইচপি ফাইল সেটআপ করতে পারেন ।

অন্য দ্রষ্টব্য: আমি কেবল জাভাস্ক্রিপ্ট ব্যবহার করিনি, কারণ ব্রাউজারের একই-উত্স-নীতি এটি সীমাবদ্ধ করে, তবে আমার পিএইচপি ফাইল থেকে আনার অনুমতি যেমন আমি header('Access-Control-Allow-Origin: *');আমার পিএইচপি কোডে রেখেছি। আমি অন্য প্রক্সি ব্যবহার করতে পারতাম তবে সেগুলিতে বেশি ট্র্যাফিক রয়েছে (আমার সাইটটি খুব কমই একদিনে কোনও ক্লিক পায়)।

আপনি যদি অন্য কোনও ভাষা ব্যবহার করে থাকেন তবে আপনাকে কেবল এই ফাইলটি পড়তে হবে ( http://techytricks97.000webhostapp.com )


1

এক্সএমএল সংরক্ষণাগার থেকে সর্বাধিক চিত্র (16) পেতে আমি অবশেষে পাইথন 3 এ একটি স্ক্রিপ্ট লেখার সিদ্ধান্ত নিয়েছি।

সুতরাং এখন আমি কোনও প্রচেষ্টা ছাড়াই চিত্রগুলি সংরক্ষণাগারভুক্ত করতে পারি। শুধু পাইথন স্ক্রিপ্ট চালান।
আমি ইমেজগুলিকে বছরের / মাস ফোল্ডারে এইভাবে সাজাই: 2018> 12 ডিসেম্বর> 2018-12-06.jpg

এই স্ক্রিপ্টটি আমার বিং ওয়ালপেপার ফোল্ডারে যায়। (যা আমার ছবি ফোল্ডারে রয়েছে)

import urllib.request as urllib
import json
from datetime import date
from dateutil import parser
import sys,os

months = "January","Febuary","March","April","May","June","July","August","September","October","November","December"

def downloadBingImages(start):
    try: data = urllib.urlopen("https://www.bing.com/hpimagearchive.aspx?format=js&idx=%i&n=8&mkt=en-NZ"%start).read()
    except: sys.exit()
    e = json.loads(data.decode())
    images = e["images"]

    for image in images:
        d = parser.parse(image["startdate"]) # parse("20181206")

        filename = str(d.date())+".jpg"                         #                  2018-12-06.jpg
        folder = "%i/%i %s/"%(d.year,d.month,months[d.month-1]) # 2018/12 December/
        file = folder+filename                                  # 2018/12 December/2018-12-06.jpg

        if not os.path.exists(folder): os.makedirs(folder)
        exists = os.path.isfile(file)

        url = "https://www.bing.com"+image["urlbase"]+"_1920x1200.jpg"
        print(("downloading","exists")[exists],filename,url)
        if not exists:
            try: urllib.urlretrieve(url,file)
            except: sys.exit()

    print()

# downloads the 16 latest bing images
downloadBingImages(-1)
downloadBingImages(7)

ওয়ালপেপার আপডেট করার জন্য extraচ্ছিক অতিরিক্ত কোড: (ডাউনলোডবিংয়ের নীচে রাখুন (7))

import ctypes,win32con

def getWallpaper():
    ubuf = ctypes.create_unicode_buffer(512)
    ctypes.windll.user32.SystemParametersInfoW(win32con.SPI_GETDESKWALLPAPER,len(ubuf),ubuf,0)
    return ubuf.value

def setWallpaper(path):
    changed = win32con.SPIF_UPDATEINIFILE | win32con.SPIF_SENDCHANGE
    ctypes.windll.user32.SystemParametersInfoW(win32con.SPI_SETDESKWALLPAPER,0,path,changed)

# update wallpaper after a week from current
wallpaper = getWallpaper()
if wallpaper.startswith(os.getcwd()): # has to be in script directory
    try: wallpaperDate = parser.parse(os.path.splitext(os.path.basename(wallpaper))[0])
    except: sys.exit() # not using an image with a parsable date

    t = date.today()
    if (t-wallpaperDate.date()).days>=7: # been a week or longer
        setWallpaper(os.path.abspath("%i/%i %s/"%(t.year,t.month,months[t.month-1])+str(t)+".jpg")) # .../2018/12 December/2018-12-14.jpg

উদাহরণ আউটপুট:

exists 2018-12-15.jpg https://www.bing.com/az/hprichbg/rb/YosemiteBridge_ROW11493343707_1920x1200.jpg
exists 2018-12-14.jpg https://www.bing.com/az/hprichbg/rb/CardinalBerries_ROW13321753978_1920x1200.jpg
exists 2018-12-13.jpg https://www.bing.com/az/hprichbg/rb/ReykjavikYuleLads_ROW12406174277_1920x1200.jpg
exists 2018-12-12.jpg https://www.bing.com/az/hprichbg/rb/PoinsettiaBuds_ROW14015106672_1920x1200.jpg
exists 2018-12-11.jpg https://www.bing.com/az/hprichbg/rb/KilimanjaroMawenzi_ROW12001033920_1920x1200.jpg
exists 2018-12-10.jpg https://www.bing.com/az/hprichbg/rb/ChristmasIslandCrab_ROW12174154872_1920x1200.jpg
exists 2018-12-09.jpg https://www.bing.com/az/hprichbg/rb/JohnDaySnow_ROW10922424229_1920x1200.jpg
exists 2018-12-08.jpg https://www.bing.com/az/hprichbg/rb/BanffEvergreens_ROW13248925556_1920x1200.jpg

exists 2018-12-07.jpg https://www.bing.com/az/hprichbg/rb/TaisetsuShirakawago_ROW12053480529_1920x1200.jpg
exists 2018-12-06.jpg https://www.bing.com/az/hprichbg/rb/Huuhkajat_ROW11700922065_1920x1200.jpg
exists 2018-12-05.jpg https://www.bing.com/az/hprichbg/rb/SurfersBronteBeach_ROW9358782018_1920x1200.jpg
exists 2018-12-04.jpg https://www.bing.com/az/hprichbg/rb/SphinxObservatory_ROW9691446114_1920x1200.jpg
exists 2018-12-03.jpg https://www.bing.com/az/hprichbg/rb/HussarPoint_ROW8654856850_1920x1200.jpg
exists 2018-12-02.jpg https://www.bing.com/az/hprichbg/rb/Nuuk_ROW12381573676_1920x1200.jpg
exists 2018-12-01.jpg https://www.bing.com/az/hprichbg/rb/RedAntarctica_ROW12620598839_1920x1200.jpg
exists 2018-11-30.jpg https://www.bing.com/az/hprichbg/rb/KilchurnSky_ROW9474162800_1920x1200.jpg

উপরের স্ক্রিপ্টটি &mkt=en-NZনিউজিল্যান্ডের চিত্রগুলির জন্য ব্যবহার করছে PS
আপনি অন্যান্য দেশের বাজারের কোডটি এখানে দেখতে পারেন

আপনি ২০০৯ সালের পর থেকে এখানে বিভিন্ন দেশের সংরক্ষণাগারযুক্ত সমস্ত চিত্রও দেখতে পারেন ।
(শুধুমাত্র 1366x768 এ যদিও)

মেজর পিএস লগ ইন করার সময় চালনার জন্য টাস্ক শিডিয়ুলারে স্ক্রিপ্ট যুক্ত করে। (বা প্রতিদিন / সাপ্তাহিক)

বেসিক টাস্ক
প্রোগ্রাম / স্ক্রিপ্ট তৈরি করুন : পাইথন (বা সি: \ পাইথন 34 \ পাইথন.এক্সইটি যদি আপনার এনভির পাথে না থাকে)
আর্গুমেন্ট: "পাথ / টু / আপনার / স্ক্রিপ্ট.পি"
শুরু: "পথ / থেকে / আপনার"

হালনাগাদ! (মার্চ 2019)
2019-03-10-এর চিত্রটি এক্সএমএল এবং আরএসএস উভয় ফর্ম্যাটেই ভুল শুরুর তারিখ (20190309) দেওয়া হয়েছিল।
পরিবর্তে জসন ফর্ম্যাট ব্যবহার করা। (যেহেতু এটি সঠিক তারিখ দেয়)


1

https://peapix.com/bing/feedবিং লোগো ছাড়াই সর্বশেষ বিং চিত্রের তালিকা তৈরি করবে, পেপিক্স.কম দ্বারা রক্ষণাবেক্ষণ করবে । নিম্নলিখিত দেশ / অঞ্চলকে সমর্থন করেছে: এও, সিএ, সিএন, ডিই, এফআর, জেপি, মার্কিন, জিবি।

উদাহরণস্বরূপ, জন্য https://peapix.com/bing/feed?country=jp জাপান এবং https://peapix.com/bing/feed?country=us মার্কিন যুক্তরাষ্ট্র জন্য।


1

ক্রোনজব লাগানোর জন্য দরকারী এক লাইনার (ব্যাশ, কার্ল এবং জকিউ প্রয়োজন) টিপুন:

BACKGROUND_META=$(curl 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US'); curl -o $(echo $BACKGROUND_META | jq -r '.images[0].urlbase' | sed s/.*=//).jpg "https://bing.com$(echo $BACKGROUND_META| jq -r '.images[0].url')"

0

আপনি সেই url এর ফাইল_কন্টেন্ট পাওয়ার কথা বিবেচনা করতে পারেন এবং চিত্রটির জন্য ফাইলটি অনুসন্ধান করতে পারেন। নিশ্চিত না যে এটি সর্বোত্তম উপায়, তবে এটি একটি উপায়।


0

@Siv থেকে URL টি ব্যবহার করে, এখানে জাভাস্ক্রিপ্টের একটি উদাহরণ রয়েছে যা আপডেট হয় <div class="bgimg" id="background">

function GetImageURL(ans) {
    var suffix = ans.images[0].url 
    document.getElementById("background").style.backgroundImage = 'url("' + 
    'http://bing.com/' + suffix + '"'
}

function GetJSON() {
    var xmlhttp = new XMLHttpRequest()
    var url = "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1"

    xmlhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            var ans = JSON.parse(this.responseText);
            GetImageURL(ans);
        }
    };
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}


window.onload = function () {
    GetJSON()
}

এই শ্রেণীর জন্য সিএসএস হ'ল:

.bgimg {
    height: 100%;
    position: relative;
    opacity: 0.95;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

ব্রাউজারের একই উত্স নীতি কারণ এটি আমার পক্ষে কাজ করে না ...
জন

0

আপনি লিনাক্স মেশিনে পাইথন এবং উইজেট ব্যবহার করে এটি করতে পারেন:

import os # import the os package
os.system("wget -O index.html http://www.bing.com") # download the bing index
str1 = open('index.html', 'r').read() # extract the file path using split
str2=str1.split("g_img={url: \"")[1]
str3=str2.split(".jpg")[0]
os.system("wget -O daily_im.jpg http://www.bing.com" + str3 + ".jpg") # donwload the daily image

এটি দৈনিক_আইএম.জেপিজি নামে স্থানীয় ডিরেক্টরিতে দৈনিক বিংয়ের পটভূমি ডাউনলোড করে। আপনি একটি স্ক্রিপ্ট.পিতে সমস্ত কিছু রাখতে পারেন এবং এটিকে প্রোগ্রামগতভাবে চালু করতে পারেন।


0

সম্পাদনা 09/27/2018: http://www.istartedsomething.com/bingimages 404 সাড়া দেয়। এর আর অস্তিত্ব থাকতে পারে না। :-(

আপনি istartedsomething.com এর বিং ইমেজ সংরক্ষণাগার ব্যবহার করতে পারেন । এটি একটি অনানুষ্ঠানিক বিং চিত্র সংরক্ষণাগার। এটি একটি হোমমেড এন্ডপয়েন্ট ব্যবহার করে যা চিত্রগুলি পুনরুদ্ধার করতে সহায়ক:

GET /bingimages/getimage.php?id=<image_id>

idচিত্রটি প্রকাশিত হওয়ার তারিখ এবং যে দেশটি এটি প্রকাশিত হয়েছিল সেখানে একটি স্ট্রিং রয়েছে। idনিম্নলিখিত ফর্ম্যাটটি মেনে চলতে হবে: YYYYMMDD-xxযেখানে:

  • YYYY বছরটি, চারটি অঙ্ক সহ লেখা।
  • MM দুই অঙ্ক সহ রচিত এই মাস।
  • DD দিনটি, দুটি অঙ্ক সহ লেখা।
  • xxদেশ সূচক। বিং চিত্র সংরক্ষণাগার বর্তমানে নিম্নলিখিত দেশগুলিকে সমর্থন করে:
    • au: অস্ট্রেলিয়া.
    • br: ব্রাজিল।
    • ca: কানাডা।
    • cn: চীন।
    • de: ডয়চল্যান্ড।
    • fr: ফ্রান্স.
    • gb: গ্রেট ব্রিটেন.
    • jp: জাপান।
    • nz: নিউজিল্যান্ড.
    • uk: যুক্তরাজ্য.
    • us: মার্কিন যুক্তরাষ্ট্র.

এটি একটি দরকারী JSON অবজেক্ট ফেরত পাঠায় যদি এর কিছু তথ্য থাকে বা যদি কিছু না পায় তবে মিথ্যা।

উদাহরণ 1: বিং দৈনিক চিত্র পুনরুদ্ধার করা যা নিউজিল্যান্ডে 24 মে, 2014 এ প্রকাশিত হয়েছিল

চিত্রটির আইডি হ'ল 20140524-nzদাবি করা চিত্রটি 05/24/2014 এ প্রকাশিত হয়েছিল এবং এটি নিউজিল্যান্ডে প্রকাশিত হয়েছিল, যার দেশের সূচক nz

http://www.istartedsomething.com/bingimages/getimage.php?id=20140524-nz JSON এর নীচের অংশটি প্রদান করে:

{
    "url":"\/az\/hprichbg\/rb\/LakeMagadiFlamingos_ROW9792683076_1366x768.jpg",
    "region":"nz",
    "date":"2014-05-24",
    "copyright":"Flamingos take flight, Lake Magadi, Kenya (\u00a9 Bobby Haas\/Getty Images)(Bing New Zealand)",
    "imageurl":"http:\/\/www.istartedsomething.com\/bingimages\/cache\/LakeMagadiFlamingos_ROW9792683076_1366x768.jpg",
    "hotspots":[],
    "video":[]
}

আপনি আপনার চিত্র পেতে imageurlক্ষেত্র বা url(বিং URL টি পাথ) ক্ষেত্রটি ব্যবহার করতে পারেন ।

উদাহরণ 2: বিং দৈনিক চিত্র পুনরুদ্ধার করা যা ফ্রান্সে 12 ই জুলাই, 1998-এ প্রকাশিত হয়েছিল

চিত্রটির আইডি হ'ল 19980712-frকারণ দাবি করা চিত্রটি 07/12/1998-এ প্রকাশিত হয়েছিল এবং এটি ফ্রান্সে প্রকাশিত হয়েছিল, যার দেশের সূচকfr

http://www.istartedsomething.com/bingimages/getimage.php?id=19980712-fr ফেরৎ falseনা থাকায় 07/12/1998 ফ্রান্সে জন্য কোন বিং দৈনিক চিত্র (বিং এমনকি এই সময়ে উপস্থিত করেনি)।


লিঙ্কগুলি মৃত, এবং উত্তর আপডেট করার মতো কোনও কিছুই আমি পাইনি।
উপ

0

ওপি অপারেটিং সিস্টেমটি নির্দিষ্ট করে না, তাই লিনাক্সে ব্যবহারের জন্য এখানে একটি। আমি এখানে দেওয়া স্ক্রিপ্ট থেকে পরিবর্তন করেছি

মূলত এটি দিনের চিত্রটির ইউআরএল নিয়ে আসে, চিত্রটি ডাউনলোড করে একটি নির্দিষ্ট ফাইলে সংরক্ষণ করে ~/.config/wallpaper.jpgএবং fehওয়ালপেপার সেট করতে ব্যবহার করে। একই সাথে একটি বিজ্ঞপ্তি প্রেরণ করে।

#!/bin/sh

WP_FILE=$HOME/.config/wallpaper.jpg

bing="www.bing.com"

# $xmlURL is needed to get the xml data from which
# the relative URL for the Bing pic of the day is extracted
#
# The mkt parameter determines which Bing market you would like to
# obtain your images from.
# Valid values are: en-US, zh-CN, ja-JP, en-AU, en-UK, de-DE, en-NZ, en-CA or opted out.
#
# The idx parameter determines where to start from. 0 is the current day,
# 1 the previous day, etc.
xmlURL="http://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=en-US"

# The desired Bing picture resolution to download
# Valid options: "_1024x768" "_1280x720" "_1366x768" "_1920x1200"
desiredPicRes="_1920x1080"

# The file extension for the Bing pic
picExt=".jpg"

# Extract the relative URL of the Bing pic of the day from
# the XML data retrieved from xmlURL, form the fully qualified
# URL for the pic of the day, and store it in $picURL

# Form the URL for the desired pic resolution
desiredPicURL=$bing$(curl -s $xmlURL | grep -oP "(?<=<urlBase>)(.*?)(?=</urlBase>)")$desiredPicRes$picExt

# Form the URL for the default pic resolution
defaultPicURL=$bing$(curl -s $xmlURL | grep -oP "(?<=<url>)(.*?)(?=</url>)")

# $picName contains the filename of the Bing pic of the day

# Attempt to download the desired image resolution. If it doesn't
# exist then download the default image resolution
if wget --quiet --spider "$desiredPicURL"
then

    # Download the Bing pic of the day at desired resolution
    curl -s -o "$WP_FILE" "$desiredPicURL"
else
    # Download the Bing pic of the day at default resolution
    curl -s -o "$WP_FILE" "$defaultPicURL"
fi

if [[ -f "${WP_FILE}" ]]; then
    feh --bg-scale "$WP_FILE" && \
        notify-send -i emblem-photos "Wallpaper" "Wallpaper changed" \
        -h int:suppress-sound:1 -h int:transient:1
fi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.