Python爬取网站gif表情包
来源:互联网 发布:云南师范大学网络缴费 编辑:程序博客网 时间:2024/05/16 02:14
Python 版本为2.7.13 IDE工具Pycharm 爬取网站:腾牛网
腾牛网属于一个比较简单的网站,就是单纯的查看网站源码,再根据网站的基本信息,提取gif表情包的下载地址,然后按各个主体分类保存
以下为效果图
1.首先,打开腾牛网站
http://www.qqtn.com/bq/dtbq_1.html
爬取内容为动态表情列表里面的表情包
2.右键查看网页源码
很明显要爬取的内容在一个<div class="g-list-left m-fl">中,直接用geta()函数,利用正则表达式获取,然后再获取每一条url
3.上面获取的网址,每一条都点击去都会有相对应的主题的表情包,然后通过getb()函数获取具体的gif地址和文件夹名称
4.将获取的gif通过savegif()保存在本地目录下
5.通过一个for循环,可以根据本身需求获取特定的网页的表情包,或者直接就获取网站中40个页面的表情包
# -*- coding: utf-8 -*-__author__ = 'zhao'__date__ = '2017/11/24 11:03'import re,time,requests,os,jsonclass Imagegif(object): def __init__(self): self.session = requests.Session()# 运行程序 def run(self, url): # 1.先获取整个页面 url2 = self.geta(url) # 2.逐一获取套图 for url2 in url2: # 进入第二层网页 url = 'http://www.qqtn.com%s' %(url2) url2 = self.getb(url) # 保存图片 self.savegif(url2)# 下载页面 def download(self, url): try: # 获取页面 response = self.session.get(url) # 根据页面信息调整适当的编码 response.encoding = 'gb2312' # 返回页面 return response except Exception as e: print e# 获取整个页面的套图url def geta(self,url): # 将页面的显示出来 data1 = self.download(url).text if data1: # 先筛选出一块区域 fir = re.findall(r'<div class="g-list-left m-fl">.*?<div class="tspage">', data1, re.S) # 再筛选出具体网址 fir2 = re.findall(r'/article/.*?html', str(fir)) return fir2 else: print u"获取不到第一层网站"# 获取一组套图的全部gif def getb(self, url): data1 = self.download(url).text if data1: # 获取一块区域,re.S多行获取 fir = re.findall(r'<div id="zoom" class="m_qmview">.+?</div>', data1, re.S) # 获取标题 name = re.findall(r'<h1>.*?</h1>', data1) # 将标题提取出来 name = str(name).replace('<h1>', '').replace('</h1>', '') # 提取gif网址 fir2 = re.findall(r'up.*?gif', str(fir)) # 将标题添加到列表中 fir2.append(name) return fir2 else: print u'获取不到第二层网站'# 保存gif表情包# 保存图片 def savegif(self, url2): dir_name = url2[-1] url2.remove(dir_name) # 将字符串中的[u'']转为unicode dir_name = str(dir_name).replace('[u','').replace('\'','').replace(']','') # unicode反转码为中文 s = r'%s' % (dir_name) dir_name = s.decode('unicode_escape') print dir_name if not os.path.exists(dir_name): os.makedirs(dir_name) il = 0 for url3 in url2: il = il + 1 url = 'http://www.qqtn.com/%s' % (url3) pix = url.split('/')[-1].split('.')[-1] img_name = dir_name + str(il) print img_name img_path = os.path.join(dir_name, "%s.%s" % (img_name, pix)) if not os.path.exists(img_path): response = self.download(url) # 打印图片地址 print(url) if response: # 返回图片二进制内容 img_data = response.content # 存储图片 with open(img_path, 'wb') as f: f.write(img_data)if __name__ == '__main__': spider = Imagegif()
#该网站有40个页面,可根据自身需求爬取 for i in xrange(1,3): url = 'http://www.qqtn.com/bq/dtbq_%s.html' % i # i为爬取的具体页面 spider.run(url)
阅读全文
0 0
- Python爬取网站gif表情包
- python使用多线程爬取表情包
- 老司机用Python多线程爬取表情包
- Python网络爬虫爬取站长素材上的表情包
- python爬虫(19)爬取论坛网站——网络上常见的gif动态图
- gif表情
- 关于Python爬虫之获取海量表情包+存入数据库+搭建网站通过关键字查询表情包
- python爬取网站图片
- Python爬取网站图片
- 51GIF GIF动图中文搜索平台,表情包发源地,GIF动图素材库
- [python] 爬取网站所有的URL
- Python爬虫爬取网站新闻
- Python爬取58足浴上网站信息
- python+request爬取电影网站
- python爬取彩票网站开奖号码
- python爬取5442网站图片
- Python爬虫 爬取翻译类网站
- Python开发爬虫,爬取网站
- 网络编程释疑之:TCP连接拔掉网线后会发生什么
- $(...).modal is not a function
- Linux下网络编程(一)
- Fedora14源代码获取方法----直接到官网去下载
- 数据库
- Python爬取网站gif表情包
- 代码块和继承中的小问题
- 平移变换
- 按照S5PV210的官方手册使用C语言配置系统时钟--实例分析
- Shell常用命令与工具(一)
- Linux使用vim编辑器创建文本文件
- Linux私房菜学习-第7章Linux文件与目录管理
- CodeForces 892B Wrath
- How To Completely Remove 360 Total Security From Windows 7 and 8