与大家一起分享刚刚写好的py.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
import urllib2
import os
import re
import sys
def trypicdir(picpath):
    if not os.path.exists(picpath):     #下载到的本地目录,路径不存在时创建一个
        os.makedirs(picpath)

#显示下载进度
def schedule(a,b,c):
    '''''
    a:已经下载的数据块
    b:数据块的大小
    c:远程文件的大小
    '''
    per = 100.0 * a * b / c
    if per > 100 :
        per = 100
    print ('%.2f%%' % per)

#获取html源码
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html
#正则匹配分页
def findPage(html):
    myItems = re.findall('(\d*)', html, re.S)
    if myItems :
        return myItems.pop()
    else:
        return 0
#正则匹配列表
def findList(html):
    Items = re.findall('(.*?)', html, re.S)
    myItems=[]
    for i in Items:
        myItems.append((i[0]))
    return myItems

#下载图片
def downloadImg(url_pic,picpath):
    tmppic = re.findall("http:\/\/www.mzitu.com/(.*?)$",url_pic,re.S)[0]
    picfile = picpath+'/%s.jpg' % '_'.join(tmppic.split('/'))
    html=getHtml(url_pic)
    myItems = re.findall('

',html,re.S)     print ('正在下载%s图片存储到本地%s..... '%(url_pic,picfile))     try:         urllib.urlretrieve(myItems[0], picfile, schedule)     except:         print ('下载%s图片存储到本地%s失败,请检查链接是否有问 '%(url_pic,picfile)) #单个美女连接下载 def getdowns(modelUrl,picpath):     listHtml=getHtml(modelUrl)     TotablNum=findPage(listHtml)     if TotablNum != 0:         for i in range(1,(int(TotablNum)+1)):             downloadImg(url_pic='%s/%s'%(modelUrl,i),picpath=picpath)     else:         downloadImg(url_pic='%s'%(modelUrl),picpath=picpath) ''' 思路: 1、获取所有美女连接列表。 2、获取单个美女总连接数。 3、下载。 ''' if __name__ == '__main__':     #picpath=r"F:\9tmp_pic"     picpath='/tmp/pic_tmp'     trypicdir(picpath=picpath)     listHtml = getHtml('http://www.mzitu.com/model')    #这是其中一个模块的url,可以添加不同的模块url从而达到整站爬取。     listContent = findList(listHtml)     #print ("listContent:",listContent)     for m in listContent:         getdowns(modelUrl='http://www.mzitu.com/%s'%m,picpath=picpath)     print ("恭喜,所有美女图片已经下载完成。")

效果图:

python:分享美女图_第1张图片