APP爬虫(2)把小姐姐的图片down下来
书接上文。使用appium在帖子列表界面模拟上划动作,捕捉不到列表的规律。上划结束后,列表只能获取到屏幕呈现的部分,而且下标还是从0开始的。
根据酸奶爸爸多年码代码的经验,帖子肯定不是一次性加载完成的,一定会有分页,上划操作到某处APP一定会请求API接口。那么我们监听APP的网络请求不就能获取到帖子内容了吗!
mac下使用charles这个软件实现。
配置好charles网络监听后又遇到拦路虎,APP的请求是https协议的,charles监听到的报文都是乱码的。我在百度上谷歌了一下。
终于能在charles里看到明文的网络请求了,于是通过网络请求可以归纳出帖子分页加载的规律。这样酸奶爸爸就可以自己编写程序,循环调用API请求抓取数据了。此处又遇到拦路虎(我为什么要加个“又”字)。API的请求做了参数签名校验,每次从charles抓到的请求,时效只有5分钟。
如果抓取程序能够尽可能的模仿用户行为,那么我们会突破所有服务端的屏障。
使用appium的在帖子详情页每3秒模拟用户上划一次,使用charles监听虚拟机的网络请求。这样charles会源源不断的捕捉到帖子分页的API请求。此处又又遇到拦路虎(我不喜欢“拦”,但我喜欢“路虎”)。此时小姐姐们的照片还是在charles里,而且还都是url字符串。
使用charles的自动保存功能,定时保存API响应结果。在charles的菜单栏“Tools”->“Auto Save”。按照下图配置,“Save Type”请选择“HTTP Archive”。配置完成后,charles抓取到的API响应会保存为HAR格式的文本文件。
到这里总算是拨开云雾见青天,har文件记录是每次API请求的全过程,有url、参数、响应时间和返回值等等,而且还是标准的json格式。我们可以用新学的go语言写一个控制台程序来解析har文件,并将解析后的结果整理归类,帖子内容存入MySQL数据库,小姐姐们的图片curl下载到文件系统。
新语言的学习并不都是新知识的学习,更多的是编程习惯的迁移。
酸奶爸爸本来是做PHP开发的,现在用GO语言写这个,本次迁移的技能如下:
- 日志记录
- MySQL数据库读写
- 断点调试
- 文本文件读取
- json解析
- 配置文件的解析
- curl下载文件
所以新语言的学习,第一步只要掌握语法,后续其实就是探索新语言所引入的新特性而已,以go语言为例,它对高并发有独到的设计。至于我们在旧语言所掌握的一些通用技能,一并迁移过来就好。go语言如何连接redis、RabbitMQ,这等通用的功能无非就是用go语言的方式引用一下包而已。
所以你看,离开舒适区其实也挺容易的吧。
总结,这里才是干货
- 学习新技能要给自己设立一个目标作为奖励,遇到困难的时候,想想我们的达成目标后的奖励,是不是又有动力了。哪怕仅仅以看视频教程的方式学新语言,也坚持不了多久。
- 我们掌握的每一项技能都是一个工具,遇到问题的时候,回顾一下我们的工具箱,将其中某几种工具组合起来就能解决问题。所以平时要多听多看多思考,这样我们才能向工具箱里装足够多的工具。遇到问题的时候,才有足够多的工具以供组装起来解决问题。
- 旧语言与新语言重叠的功能,这些是时间积淀的经典,需要夯实;新语言的新特性需要格外关注,无论是找工作还是装13都用得到;旧语言的旧功能,就让它随风而去吧。
APP爬虫(2)把小姐姐的图片down下来的更多相关文章
- scrapy爬虫爬取小姐姐图片(不羞涩)
这个爬虫主要学习scrapy的item Pipeline 是时候搬出这张图了: 当我们要使用item Pipeline的时候,要现在settings里面取消这几行的注释 我们可以自定义Item Pip ...
- 用Python做个海量小姐姐素描图
素描作为一种近乎完美的表现手法有其独特的魅力,随着数字技术的发展,素描早已不再是专业绘画师的专利,今天这篇文章就来讲一讲如何使用python批量获取小姐姐素描画像.文章共分两部分: 第一部分介绍两种使 ...
- Lottie 动画里有图片怎么办?设计师小姐姐也能帮你减少开发量!
一.序 Hi,大家好,我是承香墨影! Lottie 是 Airbnb 开源的一套跨平台的完整解决方案,设计师只需要使用 After Effectes (之后简称 AE)设计出动画之后,使用 Lotti ...
- 微博爬虫,python微博用户主页小姐姐图片内容采集爬虫
python爬虫,微博爬虫,需要知晓微博用户id号,能够通过抓取微博用户主页内容来获取用户发表的内容,时间,点赞数,转发数等数据,当然以上都是本渣渣结合网上代码抄抄改改获取的! 要抓取的微博地址:ht ...
- python血脉贲张的cosplay小姐姐图片
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本环境配置 python 3.6 pycharm requests 相关模块pip安装即可 ...
- 微信小程序裁剪图片成圆形
代码地址如下:http://www.demodashi.com/demo/14453.html 前言 最近在开发小程序,产品经理提了一个需求,要求微信小程序换头像,用户剪裁图片必须是圆形,也在gith ...
- 刷抖音太累,教你用Python把高颜值的小姐姐都爬下来慢慢看
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 星安果.AirPython 目 标 场 景 相信大家平时刷抖音短视频 ...
- 用python爬取之后发现果然如此,都说知乎的小姐姐漂亮
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- 要不是真的喜欢学技术,谁会来用Python爬小姐姐啊
养成习惯,先赞后看!!!不用于任何商业价值,只是自己娱乐.否则 爬虫爬的好,牢饭吃到饱.这是我们这次爬取的网址:https://www.vmgirls.com/ 很多人学习python,不知道从何学起 ...
随机推荐
- OpenGL与Directx的区别
OpenGL 只是图形函数库. DirectX 包含图形, 声音, 输入, 网络等模块. 单就图形而论, DirectX 的图形库性能不如 OpenGL OpenGL稳定,可跨平台使用.但 OpenG ...
- Windows10 下运行Linux子系统
关于Windows10 下运行Linux子系统: Windows10内置Linux子系统初体验:http://www.jianshu.com/p/bc38ed12da1d Win10运行Ubuntu版 ...
- 打印第二列为oldboy的第一列内容(awk,grep,sed用法)
[root@goldtest ~]# cat ip.log 10.0.0.1 oldboy 10.0.0.2 oldgirl 10.0.0.4 tingting 10.0.0.4 oldboy old ...
- Mybatis中的collection和association一关系
collection 一对多和association的多对一关系 学生和班级的一对多的例子 班级类: package com.glj.pojo; import java.io.Serializable ...
- 视频直播技术之iOS端推流
随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字.图片无法满足人们对视觉的需求,因此视频直播应运而生.承载了实时性Real-Time和交互性的直播云服务是直播覆盖各行各业的新动力.网 ...
- spring boot 2.x 系列 —— spring boot 实现分布式 session
文章目录 一.项目结构 二.分布式session的配置 2.1 引入依赖 2.2 Redis配置 2.3 启动类上添加@EnableRedisHttpSession 注解开启 spring-sessi ...
- memecached存放session数据
memcached存放session 1.session数据需要频繁调用. 2.session数据不需要永久性的保存在服务端. 3.在集群中,可以将session存放在memcached中或者是在数据 ...
- js避坑历险记
代码改变世界,世界改变码农,码农改变代码! 我就是我,我就是一个码农的武林. 前方JS巨坑出没,请注意集中力! 巨坑1:js精度问题 前段时间去一家物流公司面试,做了一个js题,印象尤为深刻: var ...
- 2019攻防世界web新手区
robots 看了题目描述,发现与robots协议有关,过完去百度robots协议.发现了robots.txt,然后去构造url访问这个文件 http://111.198.29.45:42287/ro ...
- 使用SSH+SFTP操作终端全解析,告别XShell
1.前言 在Windows系统下操作远程服务器的方式很多,比如XShell+XFTP组合,亦或是PuTTY+WinSCP组合,但在Mac系统下登陆远程服务器,并没有这些工具供我们使用.相比较而言,在M ...