源 / python教程       文 / 小雨

有一次想要斗图

就在网上搜索表情包

然后发现了一个表情巨多的网站

不小心动起了邪念

产生了兴趣

那就

把它们存下来吧

用 requests 请求了一下

发现这个网站没有做反爬

发现这里有 4k+ 的页面

简单的切换一下页面

可以发现

第一页的链接是这样的

https://fabiaoqing.com/biaoqi...

所以以此类推

构建一下所有url

_url =  https://fabiaoqing.com/biaoqing/lists/page/{page}.html

我们只需要图片的地址和图片的名称即可

所以只要获取到每个页面的所有 img 标签就可以了

可以使用  BeautifulSoup 根据类名获取

response = requests.get(url)

拿到了页面里面的所有 img

就可以获取每个图片的地址和名称

从而下载到我们想要的位置

for img in img_list:

先来测试一下

下载一个页面的图片

不过

要下载那么多张表情包的话

这样写的代码有点慢了

还是开启多线程吧

queue = Queue()

在这里创建了 DownloadBiaoqingbao 这个线程类

然后创建 10 个线程

把 url 添加到队列中

来运行一下

这时候文件夹就写入表情包啦

经过一段时间

文件夹就存满了各种表情包了

谁敢跟我斗图

我就砸死他

文件夹里面的图片太多了

需要检索一下才行

比如我们要找到关于"小老弟"的表情包

使用 glob

1import glob2for name in glob.glob( /home/wistbean/biaoqingbao/*小老弟*.* ):3   print(name)import glob2for name in glob.glob( /home/wistbean/biaoqingbao/*小老弟*.* ):3   print(name)

通过 * 这个符号进行模糊匹配

运行一下可以得到所有含有“小老弟”的表情包

那么如何进一步用到微信来呢

使用微信的接口和 python 对接一下

我发送给我的微信说

"我要关于沙雕的表情包,发 6 张来"

python接收到指令

检索表情包并发送回我的微信

可以使用 itchat 这个模块

使用网页版微信的方式登录

1itchat.auto_login(hotReload=True)2itchat.run()True)2itchat.run()

运行这段代码可以得到二维码

扫一下就可以登录进去操作微信了

进行文件搜索

1imgs = []23def searchImage(text):4    print( 收到关键词:  , text)5    for name in glob.glob( /home/wistbean/biaoqingbao/* +text+ *.jpg ):6        imgs.append(name)23def searchImage(text):4    print( 收到关键词:  , text)5    for name in glob.glob( /home/wistbean/biaoqingbao/* +text+ *.jpg ):6        imgs.append(name)

然后就可以在回复微信的时候发送图片给自己了

在这里就给自己发前 6 张图片吧

1@itchat.msg_register([PICTURE, TEXT])2def text_reply(msg):3    searchImage(msg.text)4    for img in imgs[:6]:5        msg.user.send_image(img)6        time.sleep(0.3)7        print( 开始发送表情: , img)8    imgs.clear()@itchat.msg_register([PICTURE, TEXT])2def text_reply(msg):3    searchImage(msg.text)4    for img in imgs[:6]:5        msg.user.send_image(img)6        time.sleep(0.3)7        print( 开始发送表情: , img)8    imgs.clear()

但这里有个问题

itchat 在发送图片的时候

中文名的文件发了没有反应

后来发现是 requests 库的问题

修改它的 fields.py

 1value = email.utils.encode_rfc2231(value,  utf-8 ) 2# value =  %s*=%s  % (name, value) 3value =  %s="%s"  % (name, value.encode( utf-8 )) 4 5也就是将 6 7value =  %s*=%s  % (name, value) 8 9改成1011value =  %s="%s"  % (name, value.encode( utf-8 ))-8 ) 2# value =  %s*=%s  % (name, value) 3value =  %s="%s"  % (name, value.encode( utf-8 )) 4 5也就是将 6 7value =  %s*=%s  % (name, value) 8 9改成1011value =  %s="%s"  % (name, value.encode( utf-8 ))

当然还可以优化一下

比如每次加载更多同类型的表情包

将表情包发送给特定的人等等

自己去玩吧

推荐阅读

CVPR多位主席联名公开信力挺华为:IEEE限制华为等评审参会,我们不!

让你事半功倍的小众 Python 库,是不是很惊喜!

收藏!!MYSQL常用命令

Linux Shell 中的 ()、(())、[]、[[]]、{} 怎么用是不是还傻傻分不清?

喜欢就点击“在看”吧!

Python爬取20w+表情包,微信斗图谁怕谁!相关推荐

  1. 用python爬取20w 表情包.10分钟到手

    是这样的 有一次想要斗图 配图 就在网上搜索表情包 然后发现了一个表情巨多的网站 不小心动起了邪念 产生了兴趣 那就 把它们存下来吧 用 requests 请求了一下 发现这个网站没有做反爬 发现这里 ...

  2. python多线程爬表情包,斗图斗够瘾~

    前言 嗨喽!大家好,这里是魔王. 什么?群里又在斗图 (+_+)? 别动让我来(>人<:) 教你一招爬取海量表情包图片, 从此告别图慌 !!! 课 题:python爬取海量表情包 课程亮点 ...

  3. 爬取海量表情包,让你表情包仓库持续更新,成为群里的图王(附代码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 看到小伙伴一张又一张不知道从何而来的表情包是不是有点羡慕? 今天小编就带大 ...

  4. Python:网络爬虫爬取某表情包网站

    Python:网络爬虫爬取某表情包网站 参考: 爬虫基础知识点汇总(html文件基础和4个常用库 超级详细长文预警) [爬虫教程]吐血整理,最详细的爬虫入门教程~ HTML的简单介绍 HTML的全称为 ...

  5. python爬虫实战二:爬取网站表情包

    还在担心找不到适合的表情包怼人吗?还在为自己找不到搞笑的表情包而烦恼吗?教你用python快速爬取网站表情包! 网站链接: https://fabiaoqing.com/biaoqing/lists/ ...

  6. 刚刚用python爬取一千个微信朋友圈数据,他们的秘密原来这么多。

    当下我们饮食起居基本上依靠微信,但微信不单单是1个即时通信软件,更像是仿真模拟的日常生活世界.你所处的微信朋友圈是咋样,慢慢地你的思想也会变的咋样.近几日在学习 itchat,并且写了1个网络爬虫,扒 ...

  7. python爬取王者荣耀皮肤高清图

    python爬取王者荣耀皮肤高清图 前期准备,导入模块 requests json os 进入王者荣耀官网,进入游戏壁纸页面,f12进入开发者模式,按照下图找到这个json文件,用于对图片的数据请求. ...

  8. 爬取斗图网表情包之后斗图会输?不存在的

    前言: 本文非常浅显易懂,可以说是零基础也可快速掌握.如有疑问,欢迎留言,笔者会第一时间回复. 一.分析表情包网址 1.进入斗图啦网址,点击**"最新表情"**,再点击第二.第三页 ...

  9. python 表情包下载器,轻松下载上万个表情包、斗图不用愁

    [阅读全文] 每次和朋友聊天苦于没有表情包,而别人的表情包似乎是取之不尽.用之不竭.作为一个程序员哪能甘愿认输,于是做了一个表情包下载器供大家斗图. 首先,还是介绍一下设计思路吧,和我们之前做的百度图 ...

最新文章

  1. Java对象序列化详解6,Java对象的序列化与反序列化详解
  2. 3min利用Python实现9种经典排序算法可视化!(附源代码)
  3. 即插即用 | S-FPN全新的金字塔网络,更适合轻量化模型的FPN
  4. JPA时间注解(转)
  5. 启明云端分享| 2.4寸磁编码旋钮方案智能屏
  6. nginx实现http服务配置
  7. 设置qt的QChart曲线背景色透明
  8. python 进度条_六种酷炫Python运行进度条
  9. python中什么最重要_Python 3中被忽视了的三大重要功能
  10. cancase vector_基于Vector总线设备的CAN总线测试方法概述
  11. python爬虫爬取雪球网_Python爬虫爬取天天基金网基金排行
  12. mysql升级代码_phpstudy 升级mysql 及MySQL服务等问题(示例代码)
  13. java epoch time_Java LocalDate ofEpochDay()用法及代码示例
  14. Protocol Buffers数据编码
  15. python编程语言图解_Python程序运行原理图文解析
  16. ARM体系结构与编程笔记
  17. 2022蓝桥杯你值得拥有
  18. python 欠采样_Python sklearn 实现过采样和欠采样
  19. 量化投资必备手册:史上超全量化交易平台汇总
  20. 解决error while accessing a target resource. resource is perhaps not available or a wrong access was

热门文章

  1. [Python]列出100以内被7整除不被5整除的数
  2. Sp是如何走到这一步
  3. 华为机考,华为笔试,软件类,2020年8月19日题目,超详细解答。
  4. php 商户转账到微信零钱
  5. linux格式化为fat,linux下把u盘格式化成 FAT32的例子
  6. 有道词典Android客户端包体积优化之路
  7. logback日志配置详解
  8. 关于苹果的iOS cercertificate的创建问题
  9. 315成央视盛宴是中国媒体的悲哀
  10. 关于云计算--openstack