国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python爬蟲實現獲取動態gif格式搞笑圖片的方法示例

2020-01-04 13:43:37
字體:
來源:轉載
供稿:網友

本文實例講述了Python爬蟲實現獲取動態gif格式搞笑圖片的方法。分享給大家供大家參考,具體如下:

有時候看到一些喜歡的動圖,如果一個個取保存挺麻煩,有的網站還不支持右鍵保存,因此使用python來獲取動態圖,就看看就很有意思了

本次爬取的網站是  居然搞笑網 http://www.zbjuran.com/dongtai/list_4_1.html

思路:

獲取當前頁面內容

查找頁面中動圖所代表的url地址

保存這個地址內容到本地

如果想爬取多頁,就可以加上一個循環條件

代碼:

#!/usr/bin/python#coding:utf-8import urllib2,time,uuid,urllib,os,sys,refrom bs4 import BeautifulSoupreload(sys)sys.setdefaultencoding('utf-8')#獲取頁面內容def getHtml(url):    try:        print url        html = urllib2.urlopen(url).read()#.decode('utf-8')#解碼為utf-8    except:        return    return html#獲取動圖所代表的url列表def getImagUrl(html):    if not html:        print 'nothing can be found'        return    ImagUrlList=[]    soup=BeautifulSoup(html,'lxml')    #獲取item列表    items=soup.find("div",{"class":"main"}).find_all('div',{'class':'item'})    for item in items:        target={}        #通過if語句,過濾廣告項        if item.find('div',{"class":"text"}):            #獲取url            imgurl=item.find('div',{"class":"text"}).find('img').get('src')            target['url']=imgurl            #獲取名字            target['name']=item.find('h3').text            ImagUrlList.append(target)    return ImagUrlList#下載圖片到本地def download(author,imgurl,typename,pageNo):    #定義文件夾的名字    x = time.localtime(time.time())    foldername = str(x.__getattribute__("tm_year"))+"-"+str(x.__getattribute__("tm_mon"))+"-"+str(x.__getattribute__("tm_mday"))    download_img=None    picpath = 'Jimy/%s/%s/%s' % (foldername,typename,str(pageNo))    filename = author+str(uuid.uuid1())    pic_type=imgurl[-3:]    if not os.path.exists(picpath):        os.makedirs(picpath)    target = picpath+"/%s.%s" % (filename,pic_type)    print "動圖存貯位置:"+target    download_img = urllib.urlretrieve(imgurl, target)#將圖片下載到指定路徑中    print "圖片出處為:"+imgurl    return download_img#退出函數def myquit():    print "Bye Bye!"    exit(0)def start(pageNo):    targeturl="http://www.zbjuran.com/dongtai/list_4_%s.html" % str(pageNo)    html = getHtml(targeturl)    urllist=getImagUrl(html)    for imgurl in urllist:        download(imgurl['name'],imgurl['url'],'搞笑動圖',pageNo)if __name__ == '__main__':    print '''            *****************************************            **  Welcome to Spider of GIF     **            **   Created on 2017-3-16      **            **   @author: Jimy         **            *****************************************'''    pageNo = raw_input("Input the page number you want to scratch (1-50),please input 'quit' if you want to quit/n/請輸入要爬取的頁面,范圍為(1-100),如果退出,請輸入Q>/n>")    while not pageNo.isdigit() or int(pageNo) > 50 or int(pageNo) < 1:        if pageNo == 'Q':            myquit()        print "Param is invalid , please try again."        pageNo = raw_input("Input the page number you want to scratch >")    print pageNo    start(pageNo)    #第一次爬取結束    pageNo = raw_input("Input the page number you want to scratch (1-50),please input 'quit' if you want to quit/n/請輸入總共需要爬取的頁面,范圍為(1-5000),如果退出,請輸入Q>/n>")    while not pageNo.isdigit() or int(pageNo) > 5000 or int(pageNo) < 1:        if pageNo == 'Q':            myquit()        print "Param is invalid , please try again."        pageNo = raw_input("Input the page number you want to scratch >")    #循環遍歷,爬取多頁    for num in xrange(int(pageNo)):        start(str(num+1))

結果如下:

                        *****************************************
                        **    Welcome to Spider of GIF         **
                        **      Created on 2017-3-16           **
                        **      @author: Jimy                  **
                        *****************************************
Input the page number you want to scratch (1-50),please input 'quit' if you want to quit
請輸入要爬取的頁面,范圍為(1-100),如果退出,請輸入Q>
>1
1
http://www.zbjuran.com/dongtai/list_4_1.html
動圖存貯位置:Jimy/2017-3-16/搞笑動圖/1/真是艱難的選擇。3f0fe8f6-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F206135ZHJ.gif
動圖存貯位置:Jimy/2017-3-16/搞笑動圖/1/這么賤會被打死吧……3fa9da88-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F206135H35U.gif
動圖存貯位置:Jimy/2017-3-16/搞笑動圖/1/一看就是印度……4064e60c-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F20613543c50.gif
動圖存貯位置:Jimy/2017-3-16/搞笑動圖/1/新垣結衣的正經工作臉414b4f52-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F206135250553.gif
動圖存貯位置:Jimy/2017-3-16/搞笑動圖/1/妹子這是在搖什么的421afa86-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F20613493N03.gif
Input the page number you want to scratch (1-50),please input 'quit' if you want to quit
請輸入總共需要爬取的頁面,范圍為(1-5000),如果退出,請輸入Q>
>Q
Bye Bye!

最終就能夠獲得動態圖了

希望本文所述對大家Python程序設計有所幫助。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰考县| 光泽县| 凤山县| 资源县| 盘山县| 阿拉尔市| 漳浦县| 鹤峰县| 平南县| 宜昌市| 庄河市| 田东县| 湄潭县| 鹰潭市| 秭归县| 甘洛县| 辽阳市| 肥西县| 察隅县| 晋江市| 汕尾市| 石渠县| 清镇市| 璧山县| 沙洋县| 海门市| 闸北区| 彰武县| 沾化县| 新余市| 大连市| 南召县| 长乐市| 霸州市| 泰安市| 广东省| 天台县| 仁怀市| 开封县| 哈尔滨市| 长丰县|