Skip to content
This repository has been archived by the owner on Sep 6, 2023. It is now read-only.

insshot: 自动截屏保存ins用户的最新post #34

Open
jwenjian opened this issue Jun 17, 2019 · 0 comments
Open

insshot: 自动截屏保存ins用户的最新post #34

jwenjian opened this issue Jun 17, 2019 · 0 comments

Comments

@jwenjian
Copy link
Owner

jwenjian commented Jun 17, 2019

insshot

这个项目的触发点是 -> 林志玲宣布婚讯, 微博上有人贴出了林志玲ins的po文, 但是由于众所周知的原因, 没办法上ins上看看原po.

经过了大概3天的头脑风暴+coding, 才有了现在的这个项目.

What

insshot的功能:

  1. 从github读取label列表, 我把label当成了数据库了, 这样每次想增加一个ins用户不需要手动提交了
  2. 借助puppeteer, 对每个用户的ins主页进行解析, 获取到最新的post链接
  3. 打开最新的post页面, 选取图片和文字区域, 截图到本地
  4. 调用阿里云oss的api, 将截图保存到阿里云oss中, 以便之后在手机上访问

总体思路是, 借助circle-ci的运行环境(主要是网络环境), 访问instagram, 截图保存成文件, 将文件保存至本地网络可以访问的阿里云oss上, 绕了(GFW)一圈.

How

主要的几个关键点:

  1. 在github上创建了一个token, 用token访问github的api
  2. 借助puppeteer, 解析instagram的网页, 找到需要截图的区域, 截图保存至本地
  3. 创建阿里云oss的bucket, 调用阿里云oss的api, 将截图文件发送到oss, 供本地访问
  4. 创建一个快捷指令, 用于在手机上快速查看用户的最新ins的po文

实现过程中遇到的问题:

  1. Instagram的post详情页面, 如果用户处于未登录状态, 则右侧文本区域只显示最新的评论, 而不是po主发文时输入的文字, 解决方案是模拟页面滚动, 将po主的文本滚动到可视区域之后, 再进行截图操作
  2. 阿里云的oss选择香港节点, 否则circle-ci在调用时会一直超时

其他

快捷指令

获取快捷指令 -> InsShot

使用方法, 点击设置之后, 见第一条注释.

使用截图:
image

image

供学习, 参考

@jwenjian jwenjian added the 👍置顶 pinned label Jun 17, 2019
@jwenjian jwenjian pinned this issue Jun 17, 2019
@jwenjian jwenjian unpinned this issue Jul 1, 2019
@jwenjian jwenjian added 🎨前端 and removed 👍置顶 pinned labels Jul 13, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant