这篇文章主要介绍了计算机编程语言爬虫实现获取动态可交换的图像格式格式搞笑图片的方法,结合实例形式分析了计算机编程语言针对可交换的图像格式格式图片的爬取、下载等相关操作技巧,需要的朋友可以参考下
本文实例讲述了计算机编程语言爬虫实现获取动态可交换的图像格式格式搞笑图片的方法。分享给大家供大家参考,具体如下:
有时候看到一些喜欢的动图,如果一个个取保存挺麻烦,有的网站还不支持右键保存,因此使用大蟒来获取动态图,就看看就很有意思了
本次爬取的网站是居然搞笑网http://www.zbjuran.com/dongtai/list_4_1.html
思路:
获取当前页面内容
查找页面中动图所代表的全球资源定位器(统一资源定位器)地址
保存这个地址内容到本地
如果想爬取多页,就可以加上一个循环条件
代码:
#!/usr/bin/python
#编码:utf-8
导入urllib2,时间,uuid,urllib,os,sys,re
从bs4导入美丽的声音
重新加载(系统)
sys.setdefaultencoding('utf-8 ')
#获取页面内容
def getHtml(url):
尝试:
打印全球资源定位器(Uniform Resource Locator)
html=urllib2.urlopen(url).read()# .解码(' utf-8')#解码为utf-8
除了:
返回
返回超文本标记语言
#获取动图所代表的全球资源定位器(统一资源定位器)列表
def getImagUrl(html):
如果不是html:
打印"什么也找不到"
返回
ImagUrlList=[]
soup=BeautifulSoup(html,' lxml ')
#获取项目列表
items=soup.find('div ',{'class':'main'}).find_all('div ',{'class':'item'})
对于项目中的项目:
target={}
#通过如果语句,过滤广告项
if item.find('div ',{'class':'text'}):
#获取全球资源定位器(统一资源定位器)
imgurl=item.find('div ',{'class':'text'}).查找(' img ').get('src ')
target['url']=imgurl
#获取名字
target['name']=item.find('h3 ').文本
ImagUrlList.append(目标)
返回图像列表
#下载图片到本地
定义下载(作者、imgurl、类型名,页码):
#定义文件夹的名字
x=time.localtime(time.time())
foldername=str(x . _ _ getattribute _ _(' TM _ year ')'-' str(x . _ _ getattribute _ _(' TM _ mon ')'-' str(x . _ _ getattribute _ _(' TM _ mday '))
download _ img=无
picpath='欧兢兢/%s/%s/%s' % (foldername,typename,str(pageNo))
filename=author str(uuid.uuid1())
pic_type=imgurl[-3:]
如果不是os.path.exists(picpath):
os.makedirs(picpath)
target=picpath '/%s.%s' %(文件名,pic_type)
'打印'动图存贮位置:'目标
下载_ img=URL lib。URL检索(imgurl,target)#将图片下载到指定路径中
'打印'图片出处为:' imgurl
返回下载_img
#退出函数
def myquit():
打印"拜拜!"
退出(0)
定义开始(页码):
targeturl=' http://www。zbjuran。com/Dongtai/list _ 4 _ % s . html ' % str(page no)
html=getHtml(targeturl)
urllist=getImagUrl(html)
对于URL列表中的imgurl:
下载(imgurl['名称],imgurl['url'],'搞笑动图,页码)
if __name__=='__main__ ':
打印'''
*****************************************
**欢迎来到GIF格式蜘蛛**
**创建于2017-3-16 **
** @作者:欧兢兢* *
*****************************************'''
pageNo=raw_input('输入您要擦除的页码(1-50),如果您要退出,请输入退出\ n \
请输入要爬取的页面,范围为(1-100),如果退出,请输入Q\n ')
而不是页码isdigit()或int(pageNo) 50或int(pageNo) 1:
如果pageNo=='Q ':
我的退出()
"打印"参数无效,请重试
pageNo=raw_input('输入要擦除的页码)
打印页码
开始(页码)
#第一次爬取结束
pageNo=raw_input('输入您要擦除的页码(1-50),如果您要退出,请输入退出\ n \
请输入总共需要爬取的页面,范围为(1-5000),如果退出,请输入Q\n ')
而不是页码isdigit()或int(pageNo) 5000或int(pageNo) 1:
如果pageNo=='Q ':
我的退出()
“打印”参数无效,请重试
pageNo=raw_input('输入要擦除的页码')
#循环浏览并抓取多个页面
对于xrange(int(pageNo))中的num:
start(字符串(数字1))
结果如下:
*****************************************
**欢迎来到GIF蜘蛛**
**创建于2017-3-16 **
** @作者:欧兢兢* *
*****************************************
输入您要划掉的页码(1-50),如果您要退出,请输入“退出”
请输入要抓取的页面,范围是(1-100)。如果退出,请输入q。
一个
一个
http://www.zbjuran.com/dongtai/list_4_1.html
动画存放地点:欧兢兢/2017-3-16/滑稽动画/1/多么艰难的选择。3 f 0 Fe 8 f 6-09 F8-11e 7-9161-f8bc 12753 d1e . gif
图片来源:3358 www.zbjuran.com/uploads/allimg/170206/10-1F206135ZHJ.gif
动画存放地点:欧兢兢/2017-3-16/搞笑动画/1/这么贱就打死你.3 fa 9 da 88-09 F8-11e 7-9161-f8bc 12753 d1e . gif。
图片来源:3358 www.zbjuran.com/uploads/allimg/170206/10-1f206135h35u.gif
动画存放地点:jimy/2017 . 3 . 16/滑稽动画/1/印度一瞥.4064 e60c-09 F8-11e 7-9161-f8bc 12753 d1e . gif
图片来源:3358 www.zbjuran.com/uploads/allimg/170206/10-1f20613543c50.gif
动画存放地点:jimy/2017 . 3 . 16/滑稽动画/1/Aragaki Yui的严肃工作脸414 B4 f 52-09 F8-11e 7-9161-f8bc 12753 d1e . gif。
图片来自:www.zbjuran.com/uploads/allimg/170206/10-1F206135250553.gif 3358号
动画存放地点:jimy/2017 . 3 . 16/搞笑动画/1/妹子你在抖什么?421 ABA 86-09 F8-11e 7-9161-f8bc 12753 d1e . gif
图片来自:www.zbjuran.com/uploads/allimg/170206/10-1F20613493N03.gif 3358号
输入您要划掉的页码(1-50),如果您要退出,请输入“退出”
请输入要爬网的总页数,范围从1到5000。如果退出,请输入q。
Q
拜拜!
最后可以得到动态图。
更多Python相关内容请参考我们的专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》和《Python文件与目录操作技巧汇总》。
希望本文对Python编程有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。