ACG-wallpaper

初学python,之前想抓取P站的一些图片来着,然后发现acg12这里有专门的壁纸榜单,就写了个抓取壁纸作为mac桌面壁纸玩玩。

功能:抓取acg12壁纸榜单的动漫壁纸,并定时随机设定为桌面壁纸

  • v1: 暂时完成两个脚本并且分步执行;1、生成acg12文件夹并抓取定额壁纸到本地。2、读取壁纸文件夹,随机选择一张壁纸调用appleScript设置桌面壁纸。

spider.py

完成图片抓取功能,由于acg12中的url格式规律很好找,只需要找到图片存放的url规律就行,这里用urilib的那个下载函数失败了,就换成wirte直接写入文件了,并且用了多线程加快下载速度。因为线程之间没冲突,所以不需要用到异步锁。过程中学习了python的语法以及相关特性。

```python { .theme-legacy }

python

-- coding: utf-8 --

author amourjun

import os

import getpass

import random

import subprocess

file_dir = '/Volumes/work-1/platform/acg12'

print file_dir

file_dir = ''

file = []

for root, dirs, files in os.walk(file_dir):

for f in files:

file.append(f)

cnt = 0

for f in file:

print str(cnt) + '\t -- \t' + f

cnt = cnt + 1

file_name = file_dir + '/' + file[random.randint(0, len(file) - 1)]

SCRIPT = """/usr/bin/osascript<<END

tell application "Finder"

set desktop picture to POSIX file "%s"

end tell

END"""

def set_wallpaper(file_name):

subprocess.Popen(SCRIPT%file_name, shell = True)

set_wallpaper(file_name)

```

wallpaper-mac.py

将指定文件夹中的非目录文件加入file列表,通过随机函数随机选取壁纸文件,并通过调用applesScript脚本来设置mac壁纸。

这里暂时只实现了mac版本,后续进行兼容到windows版本,并且将整个项目打包。

```python { .theme-legacy }

python

-- coding: utf-8 --

author amourjun

import os

import getpass

import random

import subprocess

file_dir = '/Volumes/work-1/platform/acg12'

print file_dir

file_dir = ''

file = []

for root, dirs, files in os.walk(file_dir):

for f in files:

file.append(f)

cnt = 0

for f in file:

print str(cnt) + '\t -- \t' + f

cnt = cnt + 1

file_name = file_dir + '/' + file[random.randint(0, len(file) - 1)]

SCRIPT = """/usr/bin/osascript<<END

tell application "Finder"

set desktop picture to POSIX file "%s"

end tell

END"""

def set_wallpaper(file_name):

subprocess.Popen(SCRIPT%file_name, shell = True)

set_wallpaper(file_name)

```

python爬虫-抓取acg12动漫壁纸排行设置为桌面壁纸的更多相关文章

  1. python 爬虫抓取心得

    quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...

  2. Python爬虫----抓取豆瓣电影Top250

    有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...

  3. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  4. python爬虫抓取哈尔滨天气信息(静态爬虫)

    python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip i ...

  5. Python爬虫 -- 抓取电影天堂8分以上电影

    看了几天的python语法,还是应该写个东西练练手.刚好假期里面看电影,找不到很好的影片,于是有个想法,何不搞个爬虫把电影天堂里面8分以上的电影爬出来.做完花了两三个小时,撸了这么一个程序.反正蛮简单 ...

  6. Python 爬虫: 抓取花瓣网图片

    接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...

  7. python爬虫 抓取一个网站的所有网址链接

    sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...

  8. Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)

    最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储. ...

  9. Python爬虫--抓取糗事百科段子

    今天使用python爬虫实现了自动抓取糗事百科的段子,因为糗事百科不需要登录,抓取比较简单.程序每按一次回车输出一条段子,代码参考了 http://cuiqingcai.com/990.html 但该 ...

随机推荐

  1. R语言 write.xlsx() 写入同一excel,及同一sheet注意

    write.xlsx(x, file, sheetName="Sheet1", col.names=TRUE, row.names=TRUE, append=FALSE, show ...

  2. TP3.2写上下篇

    笔记笔记笔记记笔记!! ************************************************************************** 要实现上一篇跟下一篇,需要 ...

  3. ABP:在多语句事务内不允许使用 CREATE DATABASE 语句

    一.问题 使用ef codefirst开发,无法创建数据库的问题,如下提示 Server Error in '/' Application. 在多语句事务内不允许使用 CREATE DATABASE ...

  4. Android Studio设置快捷键和背景

    1.快捷键设置 复制代码并且向下移动 向下移动代码 代码提示 代码改错 更改文件名称   alt + shift + R   2.更改背景颜色-豆绿色           来自为知笔记(Wiz)

  5. 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总

    中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  6. python自动化运维四:nmap端口扫描

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 端口扫描器: Python的第三方模块python-nmap可以实现高效的端口扫描. ...

  7. 关于json数据格式错误

    之前我在自己写json数据的时候,一直报错,改了很多没有找到错误,最后发现居然是单引号的问题,webstorm里的json数据格式只能用双引号,不能用单引号

  8. [H5]API之range对象

    range对象:是一种fragment(HTML片断),它包含了节点或文本节点的一部分.一般情况下,同一时刻页面中只可能 有一个range,也有可能是多个range(使用Ctrl健进行多选,不过有的浏 ...

  9. angularjs select标签中参数的传递

    今天做的一个demo中需要一个下拉选择框,并根据所选择的内容向服务器发送请求. 首先百度了一下angularjs关于select的使用,一种采用ng-repeat的方式. <select ng- ...

  10. SLF4J源码解析-LoggerFactory(二)

    承接前文SLF4J源码解析-LoggerFactory(一),本文则主要针对获取ILoggerFactory对象作下简单的分析 LoggerFactory#getILoggerFactory() 源码 ...