通过python实现斗图啦网站上的表情的获取和下载

#encoding=utf-8#导入模块
import random
import requests
import re
from bs4 import BeautifulSoup
import bs4
import os#创建请求头列表,帮助我们在进行数据爬取的时候伪装成浏览器
my_headers = ["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14","Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)",
]kv = {"User-Agent": "Mozilla/5.0"}def getHTMLText(url, headers):try:#随机从headers列表中选择一个header使用random_header = random.choice(headers)r = requests.get(url, headers={"User-Agent": random_header}, timeout = 30)#校验是否爬取成功,如果获取失败,输出“爬取失败”r.raise_for_status()r.encoding = r.apparent_encoding# print r.textreturn r.textexcept:print "爬取失败"def getImgList(Ilist, html):#使用python自带的html解析器,html.parser进行返回的html数据的解析工作soup = BeautifulSoup(html, "html.parser")# print html#分析解析后的html代码,通过正则表达式获取每一个图片对应的url地址,然后组成获取url的正则表达式pattern_img = re.compile(r'data-original="(.+?)"')#获取图片对应的标题pattern_title = re.compile(r'alt="(.+?)"')#找到所有的图片url值imgList = re.findall(pattern_img, html)# print imgList#获取所有的图片对应的标题信息titleList = re.findall(pattern_title, html)# print titleList[0].encode('utf-8')#将每一对urli地址和title组成一个列表项,放入到另外一个列表项中可以通过下表进行调用for i in range(len(imgList)):# print i,titleList[i] = titleList[i].encode('utf-8')# print titleList[i]Ilist.append([imgList[i], titleList[i]])return Ilist#判断是否存在指定的文件夹,然后创建文件夹
def mkdir(i):if not os.path.exists('img-0%d' %i):os.mkdir('img-0%d' %i)
def printImg(Ilist,page):# print len(Ilist)for i in range(len(Ilist)):# print Ilist[i][0], Ilist[i][1].encode('utf-8')# print Ilist[i][0][-4:] == '.jpg'# print type(Ilist[i][1].decode())# print type(Ilist[0][1].decode('utf-8'))img_content = requests.get(Ilist[i][0]).contentif (Ilist[i][0][-4:] == '.jpg'):with open('img-0%d/%s.jpg' % ( page, Ilist[i][1].decode('utf-8')), 'wb') as f:f.write(img_content)f.close()elif (Ilist[i][0][-4:] == '.gif'):with open('img-0%d/%s.gif' % ( page, Ilist[i][1].decode('utf-8')), 'wb') as f:f.write(img_content)f.close()def main(page):Ilist = []url = "https://www.doutula.com/photo/list/?page=%d" %pagehtml = getHTMLText(url, my_headers)Ilist = getImgList(Ilist, html)mkdir(page)printImg(Ilist, page)# page = 1
if __name__ == "__main__":print "开始获取表情包图片..."for page in range(16):print "开始获取第%d页中的内容..." % pagemain(page)print "第%d页的内容获取完毕..."%pagepage += 1print "恭喜你,你想要的内容获取完毕!!"# i = 1# for i in range(12):#     print i,

PYTHON 2.7爬虫获取斗图啦网站的表情包数据(区分gif和jpg图片格式)相关推荐

  1. 爬取最新斗图啦网站上表情包

    女朋友找我斗图,最后斗她到自闭. 网址:https://www.doutula.com/ 难度不大,代码如下: # -*- coding: utf-8 -*-import random import ...

  2. 爬取斗图吧网站并下载表情包

    需求 获取斗图啦网站最新表情的信息,并下载图片到指定的文件夹. 为了提高下载速度可以使用多线程的方式操作. 获取需要用到的url 通过对网站url(https://www.doutula.com/ph ...

  3. python爬虫之-斗图网爬取

     python爬虫之-斗图啦爬取 利用:requests, re 功能:用户自定义关键词,页码 整体代码 # 请求库 import requests # 正则 import re # 让用户输入 im ...

  4. 深夜,我用python爬取了整个斗图网站,不服来斗

    深夜,我用python爬取了整个斗图网站,不服来斗 QQ.微信斗图总是斗不过,索性直接来爬斗图网,我有整个网站的图,不服来斗. 废话不多说,选取的网站为斗图啦,我们先简单来看一下网站的结构 网页信息 ...

  5. Python:使用爬虫获取世界大学学术排名存储到 Excel 并作可视化输出

    文章目录 问题描述 问题分析 结果展示 代码实现 解法一:BeautifulSoup 解析 HTML 解法二:XPath 解析 HTML 问题描述 从 http://www.zuihaodaxue.c ...

  6. 聊天尬住了?教你用Python一键获取斗图表情包,从此摇身变海王

    很多兄弟在聊天上没有下太多的功夫,导致自己聊天的时候很容易尬住,然后就不知道聊啥了,这时候合适表情包分分钟就能救场,但是一看自己收藏的表情包,好家伙,两只手都数得过来. 所以今天来给兄弟们分享一下爬取 ...

  7. 聊天突然尬住?教你用Python一键获取斗图表情包,各种表情包轻松化解尴尬

    很多兄弟在聊天上没有下太多的功夫,导致自己聊天的时候很容易尬住,然后就不知道聊啥了,这时候合适表情包分分钟就能救场,但是一看自己收藏的表情包,好家伙,两只手都数得过来. 所以今天来给兄弟们分享一下爬取 ...

  8. 用python画大雄_python制作斗图生成器

    网上各种带文字的表情图片都被大家玩坏了,今天就和大家一起用 python 亲自做一个带字表情图片生成器. 不知道大家有没有看到网上有很多人都在说 "人生苦短,我用 python", ...

  9. Python项目实战:爬取斗图网表情包图片

    2019独角兽企业重金招聘Python工程师标准>>> 前言 相信大家在和别人聊天的时候都很喜欢斗图吧,斗着斗着斗忘记睡觉了,哈哈,感情得到了升华,下面来介绍一个利用Python在斗 ...

最新文章

  1. 【Spring】ioc的常用注解
  2. Maven项目整合讲义(Eclipse版)
  3. 通过yum安装Nginx
  4. 9.数据库中的子查询
  5. Gym - 101755G Underpalindromity (树状数组)
  6. 开源了!伯克利今年大热的DeepMimic开源了~
  7. java+maven工程 实现 自动对war包进行复制并修改和替换每个的配置文件
  8. python _滑动时间窗
  9. xmind电脑版免费_有哪些免费好用的电脑版剪辑软件?
  10. HTML在线编辑器原理
  11. 实现基于小米的电子商务平台架构
  12. python3.7运行 skimage 报错ImportError: DLL load failed:找不到指定模块
  13. 【转】GitHub 优秀的 Android 开源项目
  14. Unity打包PC包时,在WIN7环境下播放视频崩溃问题的解决记录
  15. 携程在线网页制作(flex布局)(静态页面)
  16. MySQL数据库练习2
  17. js模拟表单html形式,JS模拟并美化的表单控件完整实例
  18. 邻居好说话——冒泡排序
  19. 罗杰波、马毅、华刚等谈视觉研究那些事:是时候重新定义视觉了
  20. C++小魔术-读心术

热门文章

  1. 第9类商标的计算机和计算机软件类似吗,手机APP属于什么商标类别 第9类精品商标分享...
  2. 自私基因的生物计算机模拟
  3. 界遗产名录的格莱梅(G.reme)露天博物馆
  4. 分布式基础篇--介绍
  5. 修复win10 microsoft store 无法访问
  6. Python面向对象编程(上)
  7. fastboot刷机以及命令详细解说
  8. Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读
  9. 怎样快速提高计算机能力,5个妙招,迅速提升你的表达能力!
  10. ubuntu 有线连接不上