garfieldtom 发表于 2013-1-1 22:37:21

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

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)
页: [1]
查看完整版本: python自动下载太平洋电脑网上的壁纸