六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 319|回复: 0

python自动下载太平洋电脑网上的壁纸

[复制链接]

升级  34.33%

93

主题

93

主题

93

主题

举人

Rank: 3Rank: 3

积分
303
 楼主| 发表于 2013-1-1 22:37:21 | 显示全部楼层 |阅读模式
python自动下载太平洋电脑网上的壁纸

<div id="cnblogs_post_body">直接上代码吧,比较简单:
<div class="cnblogs_code">#-*- encoding:utf-8  -*-'''自动下载壁纸,太平洋电脑网壁纸,http://wallpaper.pconline.com.cnBy garfieldtom,2012python ver:python 3感谢   枫叶饭团  提供解答,软件取回内容有压缩'''import re,urllib.requestimport gzip#获得页面内容def downwallpapers(url):    urlcontent=geturlcontent(url)    imglist=getimglist(urlcontent)    for img in imglist:        downimg(img)    def geturlcontent(url):    #返回页面内容    doc = urllib.request.urlopen(url).read()    #解码,有些是压缩的,或者说有时是压缩的,随机??没搞懂    try:        html=gzip.decompress(doc).decode("gbk")    except:        html=doc.decode("gbk")    return html#下载图片def downimg(url):    imgdir ='/home/xxh/图片/wallpapers/'    filename = imgdir + url.split("/")[-1]    print("准备下载................")    print("url:"+url)    print("filename:"+filename)    urllib.request.urlretrieve(url, filename)    #取图片链接def getimglist(doc):    #取照图图片地址    regImg =  '<td class="show_mainbox"><img src=\'(.*?)\''    imglist = re.findall(regImg,doc)    print(imglist)    return imglist    if __name__=="__main__":    for i in range(1,13):        print('开始下载第%d个....' % i)        #打开http://wallpaper.pconline.com.cn,选择一个系列,然后打开一个图片,打开原图,地址就是类似下面的样子        #然后是系列的序号,总个数参考网页,其实可以从网页上抓取,偷懒了  :-)        url="http://wallpaper.pconline.com.cn/picsource/13307_"+str(i)+".html"        downwallpapers(url)
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表