python:分享美女圖

來源:互聯網
上載者:User

標籤:爬蟲   美女;python   

與大家一起分享剛剛寫好的py.

#!/usr/bin/env python# -*- coding: utf-8 -*-import urllibimport urllib2import osimport reimport sysdef 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(‘<span>(\d*)</span>‘, html, re.S)    if myItems :        return myItems.pop()    else:        return 0#正則匹配列表def findList(html):    Items = re.findall(‘<span><a href="http://www.mzitu.com/(\d*)" target="_blank">(.*?)</a></span>‘, 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(‘<p><a href="http:\/\/www.mzitu.com/.*?" ><img src="(.*?)" alt=".*?" /></a></p>‘,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 ("恭喜,所有美女圖片已經下載完成。")

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/8B/50/wKioL1hJe6rS0oQEAADiOLGm21w082.jpg-wh_500x0-wm_3-wmp_4-s_2156658427.jpg" title="3.jpg" alt="wKioL1hJe6rS0oQEAADiOLGm21w082.jpg-wh_50" />

本文出自 “都市布衣” 部落格,請務必保留此出處http://sunday208.blog.51cto.com/377871/1880967

python:分享美女圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.