资讯专栏INFORMATION COLUMN

用python爬取 20w 表情包之后,感叹我族人是多么强大!

Sike / 1704人阅读

摘要:是这样的有一次想要斗图配图就在网上搜索表情包然后发现了一个表情巨多的网站不小心动起了邪念产生了兴趣那就把它们存下来吧用请求了一下发现这个网站没有做反爬发现这里有的页面简单的切换一下页面可以发现第一页的链接是这样的所以以此类推构建一下所有这样

是这样的

有一次想要斗图

配图

就在网上搜索表情包

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

不小心动起了邪念

产生了兴趣

那就

把它们存下来吧

用 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:

至此

几行代码就搞定了
大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784,758,214,这里是python学习者聚集地!
先来测试一下

下载一个页面的图片

可以发现

每张图片都获取到了

效果还行

不过

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

这样写的代码有点慢了

还是开启多线程吧

对于这种 IO 操作

还是能加快不少下载时间的

 queue = Queue()

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

然后创建 10 个线程

把 url 添加到队列中

来运行一下

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

经过一段时间

小帅b的文件夹就存满了各种表情包了哈哈哈

谁敢跟我斗图

我就砸死他

不过呢

有个问题

文件夹里面的图片太多了

需要检索一下才行

比如我们要找到关于

小老弟

的表情包

那么我们可以使用 

glob

import glob
for name in glob.glob("/home/wistbean/biaoqingbao/*小老弟*.*"):
    print(name)

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

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

到这里

已经有了大量的表情包

也可以通过关键词检索到表情包了

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

嘿嘿,我得意的笑

开下脑洞

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

比如

我发送给我的微信说

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

这个时候

python接收到指令

然后就去检索表情包

发送回我的微信

可以使用 itchat 这个模块

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

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

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

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

接着就可以根据小帅b发送过来的关键词

进行文件搜索

imgs = []

def searchImage(text):
    print("收到关键词: ", text)
    for name in glob.glob("/home/wistbean/biaoqingbao/*"+text+"*.jpg"):
        imgs.append(name)
大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!

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

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

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

但这里有个问题

就是 itchat 在发送图片的时候

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

后来小帅b发现是 requests 库的问题

修改它的 fields.py

value = email.utils.encode_rfc2231(value, "utf-8")
    # value = "%s*=%s" % (name, value)
    value = "%s="%s"" % (name, value.encode("utf-8"))

也就是将

value = "%s*=%s" % (name, value)

改成

value = "%s="%s"" % (name, value.encode("utf-8"))

ok

搞定

ok

以上

当然还可以优化一下

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

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

自己去玩吧

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43883.html

相关文章

  • 【程序人生】做了低薪运营6年,妹纸靠什么转行拿下 20W 年薪?

    摘要:因当时项目组人手严重不足,故兼做部分功能测试的工作。年下半年,我的工作职能发生了调整,不再跟进系统相关,工作职能偏向文职,无法有更大的进步空间。后来从网上了解到自动化测试,去年下半年也开始通过视频学习自动化测试相关,决心转行做自动化测试。 本人大学专业非计算机相关,毕业六年一直从事运营相关工...

    时飞 评论0 收藏0
  • 【微信小程序爬虫】表情小程序图文视频教学,从零写起,保姆教程!!!

    摘要:文章目录前言爬取分析视频教学成果展示福利入门到就业学习路线规划小白快速入门爬虫路线前言皮皮虾一个沙雕而又有趣的憨憨少年,和大多数小伙伴们一样喜欢听歌游戏,当然除此之外还有写作的兴趣,,日子还很长,让我们一起加油努力叭话 ...

    coordinate35 评论0 收藏0
  • 海航生态科技舆情大数据平台容器化改造

    摘要:本文转载自微信公众号账号,作者为海航生态科技技术研究院大数据开发工程师高颜。文章介绍了海航生态科技舆情大数据平台的容器化改造经验,包括初期技术架构应用容器化架构迁移持续发布与部署。 本文转载自微信公众号Docker(账号:dockerone),作者为海航生态科技技术研究院大数据开发工程师高颜。 文章介绍了海航生态科技舆情大数据平台的容器化改造经验,包括初期技术架构、应用容器化、架构迁...

    idealcn 评论0 收藏0
  • JavaSE小实践1:Java爬取斗图网站的所有表情

    摘要:今天我就用爬取了一个斗图网站上的所有表情包,用来充实自己的表情包库。下载完所有图片,总共有思路主要通过解析页面的源代码来获取图片的地址,然后通过图片地址下载图片到本地,所以要学会使用浏览器进行分析。 跟朋友聊天总会用到大量表情包,有些人甚至专门收集各种各样的表情包,看看谁能打败谁。今天我就用java爬取了一个斗图网站上的所有表情包,用来充实自己的表情包库。代码逻辑有可能并不完美,哈哈,...

    yuanxin 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<