我用Python一键保存了半佛老师所有的骚气表情包
本文首发于公众号「Python知识圈」,如需转载,请在公众号联系作者授权。
2019年发现两个有意思而且内容比较硬核的公众号。都是同一个人运营的,我们都叫他半佛老师,现实中的职业是风控,公众号内容涉及揭秘灰产的一些坑和硬核科普。文章内容硬核外,再配上大量的沙雕表情包。让整个文章非常有趣。不到一年,两个公众号,每篇文章都有10w+ 的阅读量。19 年年底。半佛老师入驻了 B 站。制作的 B 站视频文案上也和公众号文章一样硬核,配上大量的沙雕表情包。让看视频的读者有时候看着表情包在那里傻笑(包括我),目前 B 站 327 万粉,相当的硬核。

就这样,每天有大量的读者在半佛老师的公众号和 B 站之间来回横向跳动。
说了这么多,今天这篇文章不是给半佛老师打广告的。我仅仅只是我馋他的表情包了。所以今天我用爬虫批量的保存半佛老师公众号文章里面所有的沙雕表情包。
周末在 B 站发了一个保存半佛老师的骚表情包的视频,目前播放量 12万,8000+点赞,大家可以点击文末「阅读原文」直达视频页面。

半佛老师有两个公众号。据我观察,仙人jump 公众号的表情包相对来说多一些。所以今天就以这个公众号为目标。来批量保存里面的沙雕图片或者表情包。

单篇文章表情包爬取
首先。我们要学会爬取一篇文章里面所有的表情包或者图片。比如我们指定一篇文章,打开文章,查看页面源代码。

通过简单查找,我们就可以看到。文章的图片都在date-src后面。

我们用正则表达式去提取这些链接。所有的链接都提取出来,以列表的形式返回。

然后我们需要写一个下载图片的方法。

这样我们用一个for循环就可以把这篇文章里面所有的表情包或者图片全部下载下来了。
所有文章表情包爬取
接下来第2步。我们是需要保存一个公众号所有文章里面所有的表情包或者图片,所以这一步我们需要获取这个公众号所有文章的链接地址。之前我也写过一篇文章,将一个公众号里面所有文章的链接和标题全部爬取下来:拒绝低效!Python教你爬虫公众号文章和链接
我们通过 Charles 抓包,直接抓取电脑 PC 端公众号。

我们通过上滑公众号历史文章,在抓取的链接里面我们可以看到请求和具体的返回数据。它的返回是以 Json 信息的形式。文章的链接就在 Json 信息里面。

这个 Json 看不全,我们复制到在线 json 解析工具里转换一下。

分析请求数据我们发现。链接里面除了 offset 是变化的,其他都是不变的。

用 requests 库请求链接的话,我们是需要给出 headers 信息和 cookies 信息的,笨办法的话,我们可以手动在请求头 Headers 里面找,然后复制过来。这里教大家一个非常简单的方法,我们直接右键,选择 Copy Curl Request。

复制完之后,我们放在转换地址里面。
https://curl.trillworks.com/
在左边粘贴刚才复制的 curl request,下面的语言默认是 Python。右边就会同步转换为 Python requests。

我们把右边的 Python requests 直接复制到编辑器里面就可以了。内容包括 hearders 信息和 cookies 信息,还有对应的参数,这样就避免我们对 cookies 和 headers 一个个去粘复制粘贴。这样是不是比较方便和简单!
这里有个地方注意下,复制过来的 params 里面有两个值需要去掉,offset 和 count。

因为 offset 我需要把它做成动态的,我把它们放在了开头的基础链接里。

通过 requests 库请求我们就可以获取返回的 Json 信息。然后我们提取 Json 信息里面的文章链接,为了全部获取所有文章。offset 值我们需要放在 range 里面,以 10 的步数往上增长, offset 最大值是多少呢?我们可以通过抓包获取,把公众号文章一直上滑到底,也就是滑动公众号的第 1 篇文章,我们点击这个请求,就可以看到里面的offset值。

把这个值放在 range 值里。

这样的话,这个公众号所有的文章链接,我都以列表的形式返回。返回给之前第 1 步操作的爬取单篇文章所有图片。通过两个循环,公众号下面所有文章里面的所有表情包或者图片都可以批量下载下来。

这样,虽然我没有半佛老师任何的文案,但是我有他硬核而且沙雕的表情包。
总结下:
1、运行代码前抓包通过 Copy Curl Request 到转换工具里获取 headers、cookies、和 params 替换掉我代码中的 headers 相关信息,并把 params 中 offset 和 count 去掉。
2、代码请求里加了代理ip proxy,如果运行报 pxoxy 相关的错,请自行去西刺代理ip更换一个(https://www.xicidaili.com/)免费的。
3、点击阅读原文直达这个项目的 B 站视频版,目前 12万播放量了,有账号的伙伴来个三连加关注啊。
在本公众号后台回复「表情包」获取本文所有的代码。
欢迎关注公众号「Python知识圈」,公众号后台回复关键字,获取更多干货。
回复「英语」:送你英语 7000 单词速记法,亲测非常有效。
回复「编程」:免费获赠2019最新编程资料,认真学完BAT offer 拿到手软。
回复「赚钱」:领取简单可实操的 36 个赚钱的小项目,每天多赚100块零花钱。
我用Python一键保存了半佛老师所有的骚气表情包的更多相关文章
- 如何批量修改网页 更新网站 一键保存 windows查看和排序
批量打开需要修改的网页,一键保存:一个网站会由很多网页组成,当需要大量更新的时候,如果一个个进行打开修改,效率会很低,内容修改不多,且容易修改的时候,可以用editplus这种小编辑软件批量打开,批量 ...
- python一键电影搜索与下载
代码地址如下:http://www.demodashi.com/demo/14313.html python一键电影搜索与下载 概述 使用python搜索并爬取豆瓣电影信息,包括评分,主演,导演,类型 ...
- 用Python一键搭建Http服务器的方法
用Python一键搭建Http服务器的方法 Python3请看 python -m http.server 8000 & Python2请看 python -m SimpleHTTPServe ...
- Python一键转Jar包,Java调用Python新姿势!
粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Pytho ...
- 微信小程序之base64图片如何预览与一键保存到本地相册?
需求:由于后台服务器各方面的限制,现在服务器返回的图片是base64格式的,小程序端需要支持预览图片和多个图片一键下载功能 一.如何预览base64位图片? WXML页面:item.src的值是bas ...
- Python开发个人专属表情包网站
“表情包”是一种利用图片来表示感情的一种方式.表情包是在社交软件活跃之后,形成的一种流行文化,表情包流行于互联网上面,基本人人都会发表情. 曾经你是否也有过找不到表情包去应对别人的时候. 今天小编分享 ...
- Python自动生产表情包
作为一个数据分析师,应该信奉一句话--"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态--表情包!!!! 表情包不仅仅是一种符号,更是一种文化--是促进社交 ...
- python爬虫入门02:教你通过 Fiddler 进行手机抓包
哟~哟~哟~ hi起来 everybody 今天要说说怎么在我们的手机抓包 通过 python爬虫入门01:教你在Chrome浏览器轻松抓包 我们知道了 HTTP 的请求方式 以及在 Chrome 中 ...
- python截取视频制作动态表情包+文字
1:安装moviepy库 2:安装IPython库 代码如下: from moviepy.editor import * from IPython.display import Image def B ...
随机推荐
- 第八周Java实验作业
实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: 声明: public interface 接口名 {...} 接口体中包含常量定义和方法定义 ...
- wr720n v4 折腾笔记(一):安装Openwrt
好久没有写过文章了,今天先来个引子:wr720n v4版本安装openwrt 最近弄了个路由器wr720n,想抓包做点东西,于是就先从刷固件openwrt开始吧. 所需工具: 1.wr720n v4路 ...
- 基于树莓派与YOLOv3模型的人体目标检测小车(一)
项目介绍: 本科毕业选的深度学习的毕设,一开始只是学习了一下YOLOv3模型, 按照作者的指示在官网上下载下来权重,配好环境跑出来Demo,后来想着只是跑模型会不会太单薄,于是想了能不能做出来个比较实 ...
- GANs和低效映射
生成对抗网络(GANs)被誉为生成艺术领域的下一纪元,这是有充分理由的.新技术一直是艺术的驱动因素,从颜料的发明到照相机再到Photoshop-GAN是自然而然的.例如,考虑下面的图片,由埃尔加马勒发 ...
- Java&Spring过时的经典语录
字符串拼接:请用StringBuffer代替String直接相加提高性能 过去的理论 有没有人告诉过你开发中不要 String newString = "牛郎"+"织 ...
- ThunderNet :像闪电一样,旷视再出超轻量级检测器,高达267fps | ICCV 2019
论文提出了实时的超轻量级two-stage detector ThunderNet,靠着精心设计的主干网络以及提高特征表达能力的CEM和SAM模块,使用很少的计算量就能超越目前的one-stage d ...
- Linux环境下部署项目时的步骤和一些要注意的点
SQL的导出和导入 sql的导出 首先选中要导出的数据库 然后点击左下角的administration选项,进入导出界面. 点击Data Export 然后勾选图中的几个选项即可导出一个sql,如果需 ...
- [noip模拟]水灾<BFS>
水灾(sliker.cpp/c/pas) 1000MS 64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...
- Linux基础:Day05
iptables ip 的 tables ip的表格: iptables只是netfilter的前端管理工具:netfilter是linux内核提供的数据流量管理模块: iptables/netfil ...
- flask-模板使用
flask-模板使用 模板方法: 模板中的url_for跟后台视图的url_for使用起来基本是一样的,也可以传递参数 使用方式 {{ url_for('func') }} 过滤器: 过滤器是通过管道 ...