¿Hay alguna forma de obtener la imagen de fondo de Bing mediante programación?
La API de Bing no parece proporcionar tal funcionalidad, ¿quizás hay otra forma?
Creo que la mejor manera es imitar la forma en que lo hacen ellos mismos a través de sus llamadas AJAX.
Llaman a esta URL y extraen la información mediante deserialización XML.
XML: http://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=en-US
JSON: http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US
RSS: http://www.bing.com/HPImageArchive.aspx?format=rss&idx=0&n=1&mkt=en-US
El mkt
atributo obviamente, se puede cambiar a una región diferente a'En-US', pero también se puede optar por completo si no se preocupan por una región específica.
Tenga en cuenta que el _1366x768.jpg
sufijo que se agrega a los nombres de las imágenes parece ser modificable en diferentes resoluciones (como _1920x1080.jpg
para Full HD y posiblemente otras).
Aquí hay un volcado de datos al 28/9/2013, en formato XML.
<?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&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&cp=2.794725~37.335197&lvl=7&dir=0&sty=b&q=Lake%20Turkana%2C%20Kenya&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&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&FORM=hphot3#view=detail&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&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>
_1920x1200
funciona, es decir, también1920x1080
y otros.&mkt=en-US
parte. Esto es a pesar de que tengo la aplicación configurada en "Inglés-Estados Unidos".jsonp
, pero no parece que lo permitan.FORMATO JSON de BING IMAGE
Encontré una manera de obtener el formato JSON de la imagen de Bing del día
Nota
n=
El número de imágenes que desea (puede usar números enteros ),mkt=
su ubicación (ejemplo: en-US )Aquí está la salida JSON como
utilizar el
url
de laimages[]
y agregarlo a
'http://bing.com'
aquí la URL es
"url": "\/az\/hprichbg\/rb\/DayGecko_EN-US8730336235_1366x768.jpg"
fuente
Unexpected token :
enhttps://www.bing.com/HPImageArchive.aspx?format=js&idx=8&n=8&mkt=en-US&callback=jQuery111100034959779751375653_1518009655771&_=1518009655772
Microsoft ha publicado recientemente un tema dinámico de Bing para Windows 7, que contiene una fuente RSS con enlaces a fondos de pantalla de Bing .
También hay un script de Python que intenta cargar el sitio web de Bing y adivinar la URL de la imagen correcta, pero según mi experiencia, generalmente da como resultado una imagen de menor resolución que las ofrecidas por la fuente RSS.
fuente
Llego tarde a la fiesta, pero en caso de que alguien necesite una implementación de PHP: escribí una clase simple que maneja el procedimiento:
https://github.com/grubersjoe/bing-daily-photo
fuente
Un revestimiento PowerShell (3.0 o superior)
irm
es un alias paraInvoke-RestMethod
fuente
También me gustan las imágenes de Bing, pero su aplicación está demasiado inflada para descargar imágenes. Después de analizar la conexión con Fiddler, escribí este código. El 1920x1200 viene con el logo de Bing incrustado, pero las resoluciones más bajas no lo tienen.
Puede hacer que Windows le muestre imágenes aleatorias de la carpeta de imágenes que configuró, de modo que a medida que las descargue a diario, le mostrará más imágenes aleatorias. Si mantiene el "imageDir", necesita cambiar los permisos en esa carpeta o se bloqueará, no me molesté en detectar errores. Por último, elimine los comentarios de las líneas si desea configurar su fondo de pantalla con la imagen de hoy o puede crear una tarea para ejecutar el programa, digamos un minuto después de iniciar sesión.
fuente
Vi que muchas personas también están solicitando el nuevo enlace RSS, simplemente cambie el parámetro de formato en la URL a "rss".
RSS : http://www.bing.com/HPImageArchive.aspx?format=rss&idx=0&n=1&mkt=en-US
fuente
Este JavaScript responderá al 'qué hacer con la api' cambiando la imagen de fondo de un div al fondo de la imagen de bing del día actual.
fuente
En caso de que alguien esté buscando posibles implementaciones, escribí un pequeño programa de línea de comandos en C # para descargar, guardar y configurar mi fondo como la imagen de Bing del día. Siéntase libre de modificarlo según sus necesidades personales. https://github.com/josueespinosa/BingBackground
fuente
PowerShell simple, colóquelo en una carpeta, cree una tarea diaria en el Programador de tareas de Windows, el script guarda las imágenes en su carpeta de ejecución, luego, en la configuración de Fondo de escritorio, elija esa carpeta como fondo.
fuente
Aquí hay una secuencia de comandos de Python simple para obtener la foto de Bing del día usando solo
requests
yjson
:Esto escribirá un archivo como
TurtleTears_EN-US7942276596_1920x1080.jpg
en el mismo directorio donde se ejecuta el script. Por supuesto, puede modificar un montón de cosas aquí, pero hace el trabajo con razonable facilidad.fuente
Déjame decirte cómo obtener el fondo de pantalla diario de bing del día usando javascript y php,
Prueba este código js:
Este script establece la imagen diaria de bing del día como fondo de su documento html (puede modificarlo aún más según su uso).
Este enlace: https://techytricks97.000webhostapp.com devuelve el fondo de pantalla de Bing del día, todos los días.
fetch()
obtiene la URL de la imagen de bing de hoyhttps://techytricks97.000webhostapp.com
y latext=>{document.body.style.background="url('"+text+"')";document.body.style.backgroundSize='cover';}
establece como fondo.Nota: Microsoft no permite usar las imágenes de bing daily como fondo de su sitio, puede usarlas como fondo de pantalla del teléfono / escritorio, o en otras cosas con mención de derechos de autor.
Aquí está el código php que se utiliza en http://techytricks97.000webhostapp.com :
Puede usar
http://techytricks97.000webhostapp.com
solo o puede configurar su propio archivo php en su servidor.Otra nota: no utilicé solo javascript, porque la política del mismo origen del navegador lo restringe, pero la recuperación de mi archivo php está permitida, ya que puse
header('Access-Control-Allow-Origin: *');
mi código php. Podría haber usado otros proxies pero tienen mucho tráfico (mi sitio apenas recibe ningún clic en un día).Si está utilizando cualquier otro idioma, solo tiene que leer este archivo ( http://techytricks97.000webhostapp.com )
fuente
Estaba teniendo problemas para obtener una fuente RSS adecuada que pudiera usar con el conmutador de fondo de John hasta que encontré esta fuente de feedburner que parece funcionar bastante bien: http://feeds.feedburner.com/bingimages
fuente
Eche un vistazo a bing-desktop-wallpaper-changer en Github . El script ha sido escrito en Python y espero que encuentres tu respuesta ahí.
Eche un vistazo al proyecto Github para obtener un código detallado
fuente
Finalmente decidí escribir un script en Python 3 para obtener la mayor cantidad de imágenes (16) del archivo xml.
Así que ahora puedo archivar las imágenes sin esfuerzo. Simplemente ejecute el script de Python.
Organizo las imágenes en carpetas Año / Mes como esta: 2018> 12 de diciembre> 2018-12-06.jpg
Este script va en mi carpeta Bing Wallpapers. (que está en mi carpeta Imágenes)
Código adicional opcional para actualizar el fondo de pantalla: (poner debajo de downloadBingImages (7))
ejemplo de salida:
PD: el script anterior se usa
&mkt=en-NZ
para las imágenes de Nueva Zelanda.Puede consultar el código de mercado para otros países aquí .
También puede ver todas las imágenes archivadas desde 2009 para diferentes países aquí .
(aunque solo en 1366x768)
Mayor PS agrega el script al Programador de tareas para que se ejecute al iniciar sesión. (o diario / semanal)
Cree un
programa / script de tareas básicas : python (o C: \ Python34 \ python.exe si no está en su ruta de envio)
argumentos: "ruta / a / su / script.py"
comienza en: "ruta / a / su"
¡ACTUALIZAR! (Marzo de 2019)
La imagen para 2019-03-10 recibió una fecha de inicio incorrecta (20190309) en formato xml y rss.
Usando el formato Json en su lugar. (ya que da la fecha exacta)
fuente
https://peapix.com/bing/feed
incluirá la última imagen de Bing sin el logotipo de Bing, mantenida por peapix.com . Compatible con los siguientes países / regiones: AU, CA, CN, DE, FR, JP, US, GB.por ejemplo, https://peapix.com/bing/feed?country=jp para Japón y https://peapix.com/bing/feed?country=us para los Estados Unidos.
fuente
Bash one liner (necesita bash, curl y jq), útil para poner un cronjob:
fuente
Puede considerar obtener el contenido de archivo de esa URL y buscar la imagen en el archivo. No estoy seguro de que sea la mejor forma, pero es una forma.
fuente
Usando la URL de @Siv, aquí hay un ejemplo de JavaScript que se actualiza
<div class="bgimg" id="background">
El CSS de esta clase es:
fuente
Puede hacerlo usando python y wget en una máquina Linux:
Descarga el fondo diario de bing en el directorio local con el nombre daily_im.jpg. Puede poner todo en un script.py e iniciarlo mediante programación.
fuente
EDITAR 27/09/2018: http://www.istartedsomething.com/bingimages responde 404 durante semanas. Puede que ya no exista. :-(
Puede utilizar el archivo de imágenes de Bing de istartedsomething.com . Es un archivo de imágenes de Bing no oficial. Utiliza un punto final casero que es útil para recuperar imágenes:
id
es una cadena que contiene la fecha en que se publicó la imagen y el país donde se publicó.id
tiene que cumplir con el siguiente formato:,YYYYMMDD-xx
donde:YYYY
es el año, escrito con cuatro dígitos.MM
es el mes, escrito con dos dígitos.DD
es el día, escrito con dos dígitos.xx
es el indicador de país. Bing Image Archive actualmente es compatible con los siguientes países:au
: Australia.br
: Brasil.ca
: Canadá.cn
: China.de
: Deutschland.fr
: Francia.gb
: Gran Bretaña.jp
: Japón.nz
: Nueva Zelanda.uk
: Reino Unido.us
: Estados Unidos de America.Devuelve un objeto JSON útil si tiene alguna información o falso si no tiene nada.
Ejemplo 1: recuperar la imagen diaria de Bing que se publicó el 24 de mayo de 2014 en Nueva Zelanda
La identificación de la imagen se
20140524-nz
debe a que la imagen demandada se publicó el 24/05/2014 y se publicó en Nueva Zelanda, cuyo indicador de país esnz
.http://www.istartedsomething.com/bingimages/getimage.php?id=20140524-nz devuelve la siguiente pieza de JSON:
Puede utilizar el
imageurl
campo o el campourl
(Ruta URL de Bing) para obtener su imagen.Ejemplo 2: recuperación de la imagen diaria de Bing que se publicó el 12 de julio de 1998 en Francia
La identificación de la imagen se
19980712-fr
debe a que la imagen solicitada se publicó el 12/07/1998 y se publicó en Francia, cuyo indicador de país esfr
.http://www.istartedsomething.com/bingimages/getimage.php?id=19980712-fr regresa
false
porque no hay una imagen diaria de Bing para Francia el 12/07/1998 (Bing ni siquiera existía en este momento).fuente
OP no especifica el sistema operativo, por lo que aquí hay uno para usar en Linux. Modifiqué el script que se ofrece aquí. .
Básicamente, obtiene la URL de la imagen del día, descarga la imagen y la guarda en un archivo fijo
~/.config/wallpaper.jpg
, y la usafeh
para configurar el fondo de pantalla. Al mismo tiempo envía una notificación.fuente