由于自制的电子书网站需要新增电子书推送的功能,推送的意思实际上就是发送电子书附件到用户指定的邮箱,推送的过程需要消耗一定的时间,同时考虑到自己的服务器上不存储电子书,需要首先将电子书缓存到本地服务器再执行推送,所以服务器端不能直接同步执行此任务。查了一点资料了解到可以通过Celer来实现此项功能,而网上关于Django和Celery整合的讲解并不清楚,所以在这里做一详细的使用说明记录。
more >>
爬虫部分主要是调用官方API,本次用到的API主要有两个:
获取评论:
http://music.163.com/api/v1/resource/comments/R_SO_4_{歌曲ID}?limit={每页限制数量}&offset={评论数总偏移}
获取评论对应用户的信息:
https://music.163.com/api/v1/user/detail/{用户ID}
工具:
Python3.6
sublime3
MySQL(数据存储)scrapy(数据清洗)
pyecharts(可视化工具库)
* 关于网易云音乐官方API,后期会整理一下做个汇总放在GitHub上。
more >>
1、系统调用和过程(函数)调用的区别
调用形式:过程(函数)使用一般调用指令,其转向地址是固定不变的,包含在跳转语句中;但系统调用中不包含处理程序入口,而仅仅提供功能号,按功能号调用。
被调用代码位置不同:过程调用是一种静态调用,调用者和调用代码在同一程序内,经过连接编辑后作为目标代码一部分。系统调用是一种动态调用,系统调用的处理代码在调用程序之外(操作系统中)。
提供方式:过程调用往往由编译系统提供,不同编译系统提供的过程可以不同;系统调用由操作系统提供,一旦操作系统设计好,系统调用的功能、数量种类便固定不变。
调用实现:程序使用一般机器指令(跳转指令)来调用过程(函数),是在用户态运行的;程序执行系统调用,是通过中断机构来实现,需要从用户态转变到核心态,在管理状态执行,因此,安全性好。
more >>
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true