【编程】简书文章下载和接口分析

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
【专题】简书下载器:Python-Tkinter项目编程入门


现有问题

简书在【用户头像>设置>账号管理】中有个【下载所有文章】按钮,点击后可以将个人的全部文章都下载成为一个压缩包,解压后包含了所有文章的Markdown文件。

但悲催的是,这个下载所有文字的按钮得到的只有文字,没有图片。那么如果你的文章中使用了大量图片的话,那么这个按钮就毫无帮助。

这篇文章和大家一起研究如何用Python把自己的简书文章完整的下载到电脑上面。

路径分析

登陆后从简书首页右上角【写文章】进入到自己的文章列表页面,地址栏类似:
https://www.jianshu.com/writer#/notebooks/xxxxxxxx/notes/xxxxxxxx
这里的第一组xxxxx序号表示的是每个文集Notebook的序号,后面一组xxxx是每个文章Note的编号,这和页面显示的内容相对应,如下图。

当我们点击切换Notebook时候整个地址栏都会变,因为我们打开了新的文集并默认打开了新文集的第一个文章;如果我们只点击切换Note,那么就只有右侧内容Content会变,因为我们没换文集,只是换了一个文章。

接口分析

在页面上【右键-检查】打开控制面板,切换到【Network】网络选项卡,刷新页面,按type类型排序,找到很多xhr数据请求行。

点击每个请求查看【preview】数据预览,可以看到各个请求获取的数据内容。


仔细对照可以看出几个主要请求接口的数据内容(地址从【Headers】中看到):

  • https://www.jianshu.com/author/notebooks
    获取所有文集的列表。
  • https://www.jianshu.com/author/notebooks/xxxxxxxx/notes
    获取xxx文集的所有文章列表。
  • https://www.jianshu.com/author/notes/xxxxxxxx/content
    获取xxx文章内容文字。

解决思路

  1. 因为文章是私有内容,所以首先要用Python模拟用户登录,获取到用户相应的Cookie和Session之类。
  2. 先获取到个人的所有文集Notebooks。
  3. 循环获取每个文集的所有文章Notes。
  4. 循环获取每个文章的内容Contents(Markdown格式的.md文件)。
  5. 检查每个文章中的图片链接,获取这个图片并存放好。
  6. 把文章中对应的图片链接换为对应的存储的图片地址。
  7. 找一个能够显示Markdown文件的网页框架。
  8. 页面框架和所有.md文件放到自己的网页空间上(比如Github)。
  9. 建立一个机制以便于在自己的空间上更新最新增加的文章。

最后三个不是必须的,后续文章中我们将逐步实现这些思路,请持续关注~


欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】


每个人的智能新时代

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~


END

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容