最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬蟲實(shí)現(xiàn)獲取動(dòng)態(tài)gif格式搞笑圖片的方法示例

 更新時(shí)間:2018年12月24日 09:46:56   作者:楓奇  
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)獲取動(dòng)態(tài)gif格式搞笑圖片的方法,結(jié)合實(shí)例形式分析了Python針對(duì)gif格式圖片的爬取、下載等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python爬蟲實(shí)現(xiàn)獲取動(dòng)態(tài)gif格式搞笑圖片的方法。分享給大家供大家參考,具體如下:

有時(shí)候看到一些喜歡的動(dòng)圖,如果一個(gè)個(gè)取保存挺麻煩,有的網(wǎng)站還不支持右鍵保存,因此使用python來獲取動(dòng)態(tài)圖,就看看就很有意思了

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

思路:

獲取當(dāng)前頁面內(nèi)容

查找頁面中動(dòng)圖所代表的url地址

保存這個(gè)地址內(nèi)容到本地

如果想爬取多頁,就可以加上一個(gè)循環(huán)條件

代碼:

#!/usr/bin/python
#coding:utf-8
import urllib2,time,uuid,urllib,os,sys,re
from bs4 import BeautifulSoup
reload(sys)
sys.setdefaultencoding('utf-8')
#獲取頁面內(nèi)容
def getHtml(url):
    try:
        print url
        html = urllib2.urlopen(url).read()#.decode('utf-8')#解碼為utf-8
    except:
        return
    return html
#獲取動(dòng)圖所代表的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語句,過濾廣告項(xiàng)
        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 "動(dòng)圖存貯位置:"+target
    download_img = urllib.urlretrieve(imgurl, target)#將圖片下載到指定路徑中
    print "圖片出處為:"+imgurl
    return download_img
#退出函數(shù)
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'],'搞笑動(dòng)圖',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\
請(qǐng)輸入要爬取的頁面,范圍為(1-100),如果退出,請(qǐng)輸入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)
    #第一次爬取結(jié)束
    pageNo = raw_input("Input the page number you want to scratch (1-50),please input 'quit' if you want to quit\n\
請(qǐng)輸入總共需要爬取的頁面,范圍為(1-5000),如果退出,請(qǐng)輸入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 >")
    #循環(huán)遍歷,爬取多頁
    for num in xrange(int(pageNo)):
        start(str(num+1))

結(jié)果如下:

                        *****************************************
                        **    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
請(qǐng)輸入要爬取的頁面,范圍為(1-100),如果退出,請(qǐng)輸入Q>
>1
1
http://www.zbjuran.com/dongtai/list_4_1.html
動(dòng)圖存貯位置:Jimy/2017-3-16/搞笑動(dòng)圖/1/真是艱難的選擇。3f0fe8f6-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F206135ZHJ.gif
動(dòng)圖存貯位置:Jimy/2017-3-16/搞笑動(dòng)圖/1/這么會(huì)被打死吧……3fa9da88-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F206135H35U.gif
動(dòng)圖存貯位置:Jimy/2017-3-16/搞笑動(dòng)圖/1/一看就是印度……4064e60c-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F20613543c50.gif
動(dòng)圖存貯位置:Jimy/2017-3-16/搞笑動(dòng)圖/1/新垣結(jié)衣的正經(jīng)工作臉414b4f52-09f8-11e7-9161-f8bc12753d1e.gif
圖片出處為:http://www.zbjuran.com/uploads/allimg/170206/10-1F206135250553.gif
動(dòng)圖存貯位置:Jimy/2017-3-16/搞笑動(dòng)圖/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
請(qǐng)輸入總共需要爬取的頁面,范圍為(1-5000),如果退出,請(qǐng)輸入Q>
>Q
Bye Bye!

最終就能夠獲得動(dòng)態(tài)圖了

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python生成隨機(jī)密碼或隨機(jī)字符串的方法

    python生成隨機(jī)密碼或隨機(jī)字符串的方法

    這篇文章主要介紹了python生成隨機(jī)密碼或隨機(jī)字符串的方法,涉及Python字符串及隨機(jī)數(shù)的相關(guān)使用技巧,非常簡單實(shí)用,需要的朋友可以參考下
    2015-07-07
  • Python中shape[0]、shape[1]和shape[-1]分別的意思詳解(附代碼)

    Python中shape[0]、shape[1]和shape[-1]分別的意思詳解(附代碼)

    剛開始使用python做東西,總是不太理解矩陣、數(shù)組相關(guān)的問題,所以在此記錄shape方面的總結(jié),下面這篇文章主要給大家介紹了關(guān)于Python中shape[0]、shape[1]和shape[-1]分別是什么意思的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 如何利用OpenCV進(jìn)行特征(顏色、形狀)提取

    如何利用OpenCV進(jìn)行特征(顏色、形狀)提取

    特征提取是降維過程的一部分,其中原始數(shù)據(jù)的初始集被劃分并減少到更易于管理的組,這篇文章主要給大家介紹了關(guān)于如何利用OpenCV進(jìn)行特征(顏色、形狀)提取的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 深入了解Django View(視圖系統(tǒng))

    深入了解Django View(視圖系統(tǒng))

    這篇文章主要介紹了簡單了解Django View(視圖系統(tǒng)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python中return self的用法詳解

    Python中return self的用法詳解

    這篇文章主要介紹了Python中return self的用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • windows下python虛擬環(huán)境virtualenv安裝和使用詳解

    windows下python虛擬環(huán)境virtualenv安裝和使用詳解

    這篇文章主要介紹了windows下python虛擬環(huán)境virtualenv安裝和使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-07-07
  • 動(dòng)感網(wǎng)頁相冊(cè) python編寫簡單文件夾內(nèi)圖片瀏覽工具

    動(dòng)感網(wǎng)頁相冊(cè) python編寫簡單文件夾內(nèi)圖片瀏覽工具

    這篇文章主要為大家詳細(xì)介紹了動(dòng)感網(wǎng)頁相冊(cè)的制作方法,即利用python編寫簡單文件夾內(nèi)圖片瀏覽工具,感興趣的小伙伴們可以參考一下
    2016-08-08
  • python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法

    python報(bào)錯(cuò)TypeError: Input z must be 

    大家好,本篇文章主要講的是python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2021-12-12
  • Python字符串及文本模式方法詳解

    Python字符串及文本模式方法詳解

    這篇文章主要介紹了Python字符串及文本模式方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 深入了解Python二維直方圖

    深入了解Python二維直方圖

    只統(tǒng)計(jì)像素的灰度值這一特征,可將其成為一維直方圖。二維直方圖可以統(tǒng)計(jì)像素的色相和飽和度,用于查找圖像的顏色直方圖。本文將為大家介紹分別使用OpenCV和NumPy函數(shù)計(jì)算直方圖,需要的可以學(xué)習(xí)一下
    2021-12-12

最新評(píng)論

古丈县| 股票| 玛纳斯县| 醴陵市| 玉门市| 唐山市| 新乐市| 吴忠市| 庆城县| 揭西县| 资兴市| 绥化市| 巴彦淖尔市| 游戏| 石嘴山市| 潢川县| 巴林左旗| 浪卡子县| 雅江县| 舒城县| 房产| 苍溪县| 和林格尔县| 高密市| 乌拉特前旗| 镇坪县| 邹城市| 政和县| 元朗区| 江永县| 黔西县| 肇东市| 烟台市| 临高县| 莎车县| 汾西县| 鄄城县| 西林县| 边坝县| 西宁市| 青州市|