发现 bing.com 上的图片很好看,因此打算每天把 bing.com 的图片下载下来,用作桌面。

需要做的是两个部分,爬取图片到目录和设置目录图片为桌面背景并可以自动切换。

第一部分,下载图片,使用 requests 库,配合一行正则表达式即可。

具体代码在:

https://github.com/telnetning/script_tools/blob/master/getBingPic.py

这里把下载路径设成了 /home/telnetning/Pictures/wallpaperFromBing

bing.com 的图片是每日更新,因此使用 crontab 设置一个定时任务:

1 1 * * * /usr/bin/python2 /home/telnetning/crontabFold/getBingPic.py

即每天一点一分运行脚本一次。

设置 crontab 时,注意一下脚本中的路径变量等,cron 自动引入的环境变量很少。

第二部分,设置 wallpaperFromBing 为背景图片目录。

在很多桌面中,可以直接设置,但是 gnome 太 hack 了,所以,摸索了一下,在 gnome3 中,所有的桌面环境选项几乎都是用 gsettings 来设置的。并且 gnome3 中不再提供在 xml 文件中写配置设置大量内容,所有的选项都是用 gsettings 设置,写成二进制文件形式保存。

自动切换这个功能,在 gnome 升级到 gnome3 的时候,似乎丢掉了。

没办法,自己写一个选取图片定时切换。

注意的是,下面命令可以用来切换桌面背景:

gsettings set org.gnome.desktop.background picture-uri PIC_URL

因此,用 python 选取图片,然后用 crontab 定时切换:

  import os, random
pic = random.choice(os.listdir('/home/telnetning/Pictures/wallpaperFromBing'))
changeCom = "gsettings set org.gnome.desktop.background picture-uri file:///home/telnetning/Pictures/wallpaperFromBii
ng/" + pic
os.system(changeCom)

设置15分钟切换一次:

*/15 * * * * /usr/bin/python2 /home/telnetning/crontabFold/changeBackground.py

获取bing.com的图片并在gnome3中设置自动切换的更多相关文章

  1. Android 之 PackageManager获取的应用程序信息与AndroidManifest文件中设置的信息不一致问题

    有时我们需要用 PackageManager 来获取应用程序的版本号和版本名称等信息,通过以下代码来获取: PackageManager manager = getPackageManager(); ...

  2. 获取bing图片并自动设置为电脑桌面背景(C++完整开源程序)

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  3. 【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  4. 获取bing图片并自动设置为电脑桌面背景(使用 URLDownloadToFile API函数)

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  5. 获取bing首页的每日一图

    从必应(bing)首页抓取他的每日一图 以前上学时,曾经用python写过一个每天抓取bing每日一图的小工具. 现在想用java来重构一下. 抓取图片的思路 首先获取网页源码 从网页源码中,我们可以 ...

  6. 获取Bing每日壁纸用作首屏大图

    获取Bing每日壁纸用作首屏大图 Bing 搜索每天都会更换一张精美的图片作为壁纸,除了特殊时候不太好看外(比如春节那几天),没多大问题.移动端还有上每日故事,与图片现配.现在我的博客首屏图片就是Bi ...

  7. Android获取ImageView上的图片,和一个有可能遇到的问题!

    1.在获取图片前先调用setDrawingCacheEnabled(true)这个方法: 举例:mImageView.setDrawingCacheEnabled(true); 2.之后可以通过get ...

  8. ios 从网络上获取图片并在UIImageView中显示

    ios 从网络上获取图片   -(UIImage *) getImageFromURL:(NSString *)fileURL { NSLog(@"执行图片下载函数"); UIIm ...

  9. 如何通过图片在 HTTPS 网站中获取 HTTP 接口数据

    <script> (function() { var Decode=function(b){var e;e=[];var a=b.width,c=b.height,d=document.c ...

随机推荐

  1. SilverLight CheckBox 控件 DataContext属性与DataContextChanged事件

    当CheckBox对象创建时,会触发一次DataContextChanged事件,默认值待定,销毁时不会触发,代码修改DataContext时也会触发

  2. 解决Ubuntu安装openssh-server依赖问题

    sudo apt-get install openssh-server 提示:openssh-server : 依赖: openssh-client (= 1:6.6p1-2ubuntu1) 解决 u ...

  3. Lua笔记

    闭包 示例一 function newCounter() return function() -- anonymous function i = i + return i end end c1 = n ...

  4. javascript--Math相关

    最值:Math.max(1,2,3,5);//5 Math.min(1,2,3,5);//1 数组最值:var a=[1,2,3,5]; Math.max.apply(null, a);//最大值 M ...

  5. 算法_bitmap算法

    概述 所谓bitmap就是用一个bit位来标记某个元素对应的value,而key即是这个元素.由于采用bit为单位来存储数据,因此在可以大大的节省存储空间     算法思想 32位机器上,一个整形,比 ...

  6. 15分钟学会Lua

    lua的很多语法跟matlab很像 最基本的赋值是一样的 循环和选择判断后面必须跟一个关键字:do和then ,, do ... end if - then - end table是lua的唯一一种数 ...

  7. oracle触发器和存储过程的格式

    最近接到一个任务要根据一个表来转移另一个表的数据到第三个表.想了想,用决定用触发器+存储过程的方式来做.有些时间没有写存储过程和触发器了,查了一下资料,确定了oracle的触发器和存储过程的格式. 触 ...

  8. JavaMail和James的秘密花园

    JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开发出类似于Micros ...

  9. python之路 - 爬虫

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕 ...

  10. Android Studio编码问题

    Android Studio编码问题 不同于Eclipse,选中项目右击即会出现"Properties"选项,可以设置项目文件的默认编码,可以根据自己的需要设置为UTF-8/GB2 ...