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

直接上代码吧,比较简单:

#-*- encoding:utf-8  -*-
'''
自动下载壁纸,太平洋电脑网壁纸,http://wallpaper.pconline.com.cn
By garfieldtom,2012
python ver:python 3

感谢   枫叶饭团  提供解答,软件取回内容有压缩
'''

import re,urllib.request
import 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)


 

再次感谢   枫叶饭团  提供解答,软件取回内容有压缩 !

原文地址:https://www.cnblogs.com/GarfieldTom/p/2802000.html