神级程序员让你见识下什么才是企业级项目!通过这个拿到20K月薪
爬取简书全站文章并生成 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/。
就已经可以爬取简书全站的文章做成 API,并且可以部署上线了。但是我对 Docker 这个很火的东西非常感兴趣,前段时间学了 Docker 的基本操作,正好可以用上。这也时我第一次用 Docker 部署 Django 应用,若有不正确的地方,还望指出。
使用 Docker 部署 Django 应用程序
到此,所有容器的创建过程都已经了解清楚,所有文件的目录树如下所示:
谢谢阅读!
如有侵权请联系小编删除!
- 别让你的腰承受无法言说之痛!你知道腰肌劳损是腰间盘的前兆吗?
- 包饺子的时候只要在馅中加上这一物,让你包出的饺子好吃不油腻
- 在恋爱过程中,这四个小技巧让你轻松获得男人的好感
- 4个条件让你快速辨别股东是否在滥用股东权利
- 魔术因小失大错失邓肯,美JRs:让你飞机上建宠物乐园也得答应
- 从亚马逊到戴尔:细数可以让你在任何地方工作的知名公司
- 女人出现这五个信号,就开始衰老,学会这三招让你焕发青春!
- 想减肥?这些杂粮让你吃了越来越苗条!
- 除夕夜收官的《年味有FUN》,让你找回了记忆中的“年味”吗?
- 教你几手上档次家常菜,让你倍有面子!
