专栏名称: Python学习交流
每天更新,更新python相关的知识。希望诸君有所收获!
目录
相关文章推荐
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  昨天  
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历 ·  3 天前  
Python爱好者社区  ·  离谱!下载DeepSeek最高判刑20年? ·  2 天前  
Python爱好者社区  ·  1885页的Python完全版电子书 ·  3 天前  
Python爱好者社区  ·  多模态,杀疯了 ·  2 天前  
51好读  ›  专栏  ›  Python学习交流

神级程序员让你见识下什么才是企业级项目!通过这个拿到20K月薪

Python学习交流  · 公众号  · Python  · 2018-01-22 19:53

正文

爬取简书全站文章并生成 API

1. 网页源码分析:

以下是简书首页文章处的源码:


若文章没有被打赏过,则“打赏”在网页源码中不会存在,代码中会进行处理,剩下的都会存在,但在爬取“热门”目录下的文章时,“阅读数”,“评论数”,“喜欢” 也会出问题,所以代码中也都做了相应的处理。这篇文章分享之前我还是要推荐下我自己的Python学习交流群:103456743不定期分享干货,包括我自己整理的一份2018最新的Python资料和零基础入门教程,欢迎各位小伙伴。

简书各个目录代码格式相同,所以相同的方法也可以爬取简书其余几个分类目录。

6. 部署上线

  • 使用 nginx + uwsgi + django + supervisor 进行环境部署

    或者

  • 使用 docker 进行环境部署

已经介绍了简书网站的结构,爬取文章前对网页源码进行必要的分析,以及整个项目的步骤,开始介绍如何爬取简书分类目录下的文章,

开始写 models:

此 API 的设计是模仿知乎日报 API 的形式,models 分两层,第一层是概要信息,第二层是详细内容,以概要信息作为外键。

爬取文章详细信息代码:

代码运行结果:

已经提到过,“热门”目录和“新上榜”目录下代码的结构相同,所以以上代码稍作修改完全可以爬取“热门”下的文章,但我将“热门”下爬取到的文章放在了一张表里,大家可以自行尝试。

前面介绍了从分析网页源码到爬取文章并将其保存在 MySQL 中的过程,如有不明白的,请务必看完前几节的介绍:

  • 编写 models:存储数据使用的字段

  • 编写需要进行序列化的字段:将字段序列化为 JSON 的形式输出

  • 编写 views:对数据进行的各种存取操作

  • 编写 URL:访问 API 所使用的 URL

models 在上一节中已经写好,此处不再赘述。

编写需要进行序列化的字段

编写 views

ReadOnlyModelViewSet 自动提供了“只读”方法,然后按时间排序取出数据库中相应数量的文章。

编写 URL

使用 Router 类可以自动生成 URL,我们需要做的仅仅是正确的注册 View 到 Router中:

再次访问 api 界面 http://222.24.63.118:8080/。







请到「今天看啥」查看全文