Python爬取20w+表情包,微信斗图谁怕谁!
源 / 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+表情包,微信斗图谁怕谁!相关推荐
- 用python爬取20w 表情包.10分钟到手
是这样的 有一次想要斗图 配图 就在网上搜索表情包 然后发现了一个表情巨多的网站 不小心动起了邪念 产生了兴趣 那就 把它们存下来吧 用 requests 请求了一下 发现这个网站没有做反爬 发现这里 ...
- python多线程爬表情包,斗图斗够瘾~
前言 嗨喽!大家好,这里是魔王. 什么?群里又在斗图 (+_+)? 别动让我来(>人<:) 教你一招爬取海量表情包图片, 从此告别图慌 !!! 课 题:python爬取海量表情包 课程亮点 ...
- 爬取海量表情包,让你表情包仓库持续更新,成为群里的图王(附代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 看到小伙伴一张又一张不知道从何而来的表情包是不是有点羡慕? 今天小编就带大 ...
- Python:网络爬虫爬取某表情包网站
Python:网络爬虫爬取某表情包网站 参考: 爬虫基础知识点汇总(html文件基础和4个常用库 超级详细长文预警) [爬虫教程]吐血整理,最详细的爬虫入门教程~ HTML的简单介绍 HTML的全称为 ...
- python爬虫实战二:爬取网站表情包
还在担心找不到适合的表情包怼人吗?还在为自己找不到搞笑的表情包而烦恼吗?教你用python快速爬取网站表情包! 网站链接: https://fabiaoqing.com/biaoqing/lists/ ...
- 刚刚用python爬取一千个微信朋友圈数据,他们的秘密原来这么多。
当下我们饮食起居基本上依靠微信,但微信不单单是1个即时通信软件,更像是仿真模拟的日常生活世界.你所处的微信朋友圈是咋样,慢慢地你的思想也会变的咋样.近几日在学习 itchat,并且写了1个网络爬虫,扒 ...
- python爬取王者荣耀皮肤高清图
python爬取王者荣耀皮肤高清图 前期准备,导入模块 requests json os 进入王者荣耀官网,进入游戏壁纸页面,f12进入开发者模式,按照下图找到这个json文件,用于对图片的数据请求. ...
- 爬取斗图网表情包之后斗图会输?不存在的
前言: 本文非常浅显易懂,可以说是零基础也可快速掌握.如有疑问,欢迎留言,笔者会第一时间回复. 一.分析表情包网址 1.进入斗图啦网址,点击**"最新表情"**,再点击第二.第三页 ...
- python 表情包下载器,轻松下载上万个表情包、斗图不用愁
[阅读全文] 每次和朋友聊天苦于没有表情包,而别人的表情包似乎是取之不尽.用之不竭.作为一个程序员哪能甘愿认输,于是做了一个表情包下载器供大家斗图. 首先,还是介绍一下设计思路吧,和我们之前做的百度图 ...
最新文章
- Java对象序列化详解6,Java对象的序列化与反序列化详解
- 3min利用Python实现9种经典排序算法可视化!(附源代码)
- 即插即用 | S-FPN全新的金字塔网络,更适合轻量化模型的FPN
- JPA时间注解(转)
- 启明云端分享| 2.4寸磁编码旋钮方案智能屏
- nginx实现http服务配置
- 设置qt的QChart曲线背景色透明
- python 进度条_六种酷炫Python运行进度条
- python中什么最重要_Python 3中被忽视了的三大重要功能
- cancase vector_基于Vector总线设备的CAN总线测试方法概述
- python爬虫爬取雪球网_Python爬虫爬取天天基金网基金排行
- mysql升级代码_phpstudy 升级mysql 及MySQL服务等问题(示例代码)
- java epoch time_Java LocalDate ofEpochDay()用法及代码示例
- Protocol Buffers数据编码
- python编程语言图解_Python程序运行原理图文解析
- ARM体系结构与编程笔记
- 2022蓝桥杯你值得拥有
- python 欠采样_Python sklearn 实现过采样和欠采样
- 量化投资必备手册:史上超全量化交易平台汇总
- 解决error while accessing a target resource. resource is perhaps not available or a wrong access was