Python爬虫实现获取动态gif格式搞笑图片的方法示例

  

本文实例讲述了Python爬虫实现获取动态gif格式搞笑图片的方法。分享给大家供大家参考,具体如下:

  

有时候看到一些喜欢的动图,如果一个个取保存挺麻烦,有的网站还不支持右键保存,因此使用python来获取动态图,就看看就很有意思了

  

本次爬取的网站是,居然搞笑网

  

<>强思路:

  

获取当前页面内容

  

查找页面中动图所代表的url地址

  

保存这个地址内容到本地

  

如果想爬取多页,就可以加上一个循环条件

  

<强>代码:

        # !/usr/bin/python   utf - 8编码:   进口urllib2、时间、uuid urllib,操作系统,系统,再保险   从bs4进口BeautifulSoup   重载(系统)   sys.setdefaultencoding (“utf - 8”)   #获取页面内容   def getHtml (url):   试一试:   打印的url   html=urllib2.urlopen (url) .read () # .decode (utf - 8) #解码为utf - 8   除了:   返回   返回的html   #获取动图所代表的url列表   def getImagUrl (html):   如果不是html:   打印任何可以找到的   返回   ImagUrlList=[]   汤=BeautifulSoup (html、lxml的)   #获取物品列表   项=soup.find (" div ",{“类”:“主要”}).find_all (" div "{“类”:“项”})   项目的项目:   目标={}   #通过如果语句,过滤广告项   如果item.find (" div "{“类”:“文本”}):   #获取url   imgurl=item.find (" div "{“类”:“文本”});(img) . get (“src”)   目标的url=imgurl   #获取名字   目标['名字']=item.find (h4)。text   ImagUrlList.append(目标)   返回ImagUrlList   #下载图片到本地   def下载(作者、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=没有   picpath=' Jimy/% s/% s/% s的% (foldername typename, str (pageNo))   文件名=作者+ str (uuid.uuid1 ())   pic_type=imgurl [3:]   如果不是os.path.exists (picpath):   os.makedirs (picpath)   目标=picpath +”/% s。% s“%(文件名,pic_type)   打印”动图存贮位置:“+目标   download_img=urllib。urlretrieve (imgurl、目标)#将图片下载到指定路径中   打印”图片出处为:“+ imgurl   返回download_img   #退出函数   def myquit ():   打印“拜拜!”   退出(0)   def开始(pageNo):   targeturl=" http://www.zbjuran.com/dongtai/list_4_%s.html " % str (pageNo)   html=getHtml (targeturl)   urllist=getImagUrl (html)   在urllist imgurl:   下载(imgurl['名字'],imgurl“url”,“搞笑动图”,pageNo)   if __name__==癬_main__”:   打印“   *****************************************   GIF * *的* *欢迎来到蜘蛛   * * 2017-3-16 * *上创建   * * @author: Jimy * *   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *”   pageNo=raw_input(“输入你想要的页码(1-50),请输入“退出”如果你想退出\ n \   请输入要爬取的页面,范围为(1 - 100),如果退出,请输入Q> \ n>”)   虽然不是pageNo.isdigit()或int (pageNo)比;50或int (pageNo) & lt;1:   如果pageNo==拔省?   myquit ()   打印”参数是无效的,请再试一次。”   pageNo=raw_input(“输入页码你想抓祝辞”)   打印pageNo   开始(pageNo)   #第一次爬取结束   pageNo=raw_input(“输入你想要的页码(1-50),请输入“退出”如果你想退出\ n \   请输入总共需要爬取的页面,范围为(1 - 5000),如果退出,请输入Q> \ n>”)   虽然不是pageNo.isdigit()或int (pageNo)比;5000或int (pageNo) & lt;1:   如果pageNo==拔省?   myquit ()   打印”参数是无效的,请再试一次。”   pageNo=raw_input(“输入页码你想抓祝辞”)   #循环遍历,爬取多页   的num xrange (int (pageNo)):   开始(str (num + 1))      之前      

结果如下:

  
  

,,,,,,,,,,,,,,,,,,,,,,,* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  ,,,,,,,,,,,,,,,,,,,,,,* *,,,欢迎来到蜘蛛GIF ,,,,,,,* *
  ,,,,,,,,,,,,,,,,,,,,,,* *,,,,,上创建2017 - 3 - 16,,,,,,,,,,* *
  ,,,,,,,,,,,,,,,,,,,,,,* *,,,,,@author: Jimy ,,,,,,,,,,,,,,,,* *
  ,,,,,,,,,,,,,,,,,,,,,,* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  输入你想要的页码(1-50),请输入“退出”如果你想退出

Python爬虫实现获取动态gif格式搞笑图片的方法示例