0x00 前言
很久没有写文章了 最近迷上了一款国外图片社交app: Instagram
可能有些人不知道这款app是没有办法保存照片的
看了很多美图可是却不能保存 所以干脆就写个脚本提取出来吧
0x01 思路
在ins任意一个帖子上点右上角的仨点就会弹出分享的方式
选择”复制网址”后的链接是这样的”https://instagram.com/p/BQe5OemhmjK/”
用电脑访问一下
发现跳转到了www域下的对应uri
这时候F12分析一下看看图片是直接输出的还是需要获取的
可以很直观看出图片是在一个property为og:image的meta标签里面的content里面
考虑了3种方式完成这一功能 web应用 微信机器人 和纯Python脚本
考虑到玩ins一般都是在手机上玩 所以提取照片的方式在手机上越方便越好
所以就选择了写成一个微信机器人
0x02 代码
本机器人依赖于wxBot框架 项目地址:https://github.com/liuwons/wxBot
wxBot有一个自带的函数handle_msg_all()用来处理每一条接收到的消息
首先在这个函数里面判断
是否为联系人消息
且是否为文本消息
如果都是的话再判断
是否为合法的ins分享链接
是的话返回对应www域的uri
代码:
接着就下载对应的网页 用xpath解析出图片地址
图片地址的xpath为:’[//*[@property="og:image"]/@content’
代码:
接着就将图片的url传进下载函数里面 然后将MD5(imgSrc)当成用户名保存在本地
然后发送给用户
由于ins需要进行科学上网 所以这里发送的所有网络请求都用到了proxy
这里我用的ssr
所以让python走ssr的通道去访问就ok了
完整代码见我的github : https://github.com/naiquann/insImgGetting
0x03 测试
运行脚本后需要先扫描二维码登录
这里用小号登录大号测试
发送消息后
成功返回照片
转载于:https://my.oschina.net/ichunqiu/blog/839728