这是我新开发的一个项目,你可以在 Google 上找到 ZipBook。
这是一个有意思的项目。最新看网上的小说挺多,而且我希望有文本格式的格式下载,这样就可以在手机中看了。小说的下载方式挺多的,不过我想以自已的方式来下载和加工。原本想做成一个UliPad的插件,不过想一想做成个web也许更有意思,于是花了两天时间做了一个雏型。
它主要的功能就是让你输入一本小说的目录页面的URL,然后它就可以进行分析目录,然后自动下载每个章节。下载后会提取纯文本存到数据库中。在页面上你可以点击下载将整个小说以zip包的方式下载到本地,除了提供分章节的文本方式还提供将所有内容存到一个文本中的功能。
主要技术处理:
1. 页面分析
不同的站网,结构,内容编排都是不同的。因此在项目中有一个plugins目录,它用来存放每个可以处理网站的解析模块。在plugins的__init__.py中定义了域名与可处理的模块名的关系。因此并不是所有的网站都支持的。对于一个不支持的网站你只要在plugins中写一个新的模块。这个模块需要提供三个方法:parse_title用来从目录页得到小说名,parse_page用来从内容页得到文本的内容,parse_index,得到目录的详细信息。有了这些信息,zipbook就可以自动下载了。首先是根据目录url下载得到小说名和目录结构,然后再通过多线程分别下载整个目录结构。
2. 生成Zip文件
使用我以前写的zfile.py模块,不过原模块不支持将字符串直接写入zip文件,于是做了下扩展。使用这个模块写zip文件比较简单。然后就是HttpResponse的处理,基本可以参照Django Step by Step中关于csv下载的处理。只要注意把mime类型和下载的文件名搞对就行了。其实可以使用mimetypes模块的guess_type来猜mime类型。
难度到是没有。但有一个比较麻烦的就是如果在一个请求中进行处理的话,处理时间很长,前端页面长时间就不动了。原来想通过Comet来实现,不过没有看到Django中如何做,所以就放弃了。后来想通过ajax去轮询,不过后台需要是异步处理,我想到的是写一个独立的守护,或通过后台执行,不过在windows下可能不方便就没有试,所以处理时间比较长。想实现进度显示碍于技术没有实现。
Todos:
1. 因为所有章节都已经有了,所以可以做一个显示的界面。现在是只能下载看,不能在web上看。
2. 因为考虑到是生成txt,所以不能处理有些电子书就是图片的情况。如果要支持,只能是生成html格式了。同时还要考虑图片与链接的关系。
3. 增加更多的站点的支持。
4. 没有做界面,很丑陋,需要弄得好看些。
5. 书的tag支持
update 2007/06/11
当前显示界面
分享到:
相关推荐
Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的...
Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例
django项目django项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue项目.zipdjango项目django+vue...
**Django小项目超简单贼适合新手** 在Python Web开发领域,Django是一个非常流行的开源框架,它以其高效、安全和可扩展性受到广大开发者喜爱。对于初学者来说,Django提供了一个很好的学习平台,可以帮助他们快速...
Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目Django-商城项目...
本项目是一个基于Python语言开发的Django项目,包含221个文件,主要文件类型包括图片、Python源代码、XML...系统设计旨在为用户提供一个高效、便捷的Django项目开发解决方案,以满足用户在Django项目开发方面的需求。
python django + mysql 开发的入门级博客项目,用于学习,包含complist.txt组件列表,直接pip install -r complist.txt即可安装该项目需要的组件。 该项目包含管理端的开发,持久化相关方法学习,admin管理端的二次...
项目标题:基于Python Django的实战项目源码解析 技术栈:本项目主要采用Python语言开发,辅以HTML和CSS进行前端设计。 文件概览:总计174个文件,包括以下类型: - pyc文件(已编译的Python文件):50个 - py文件...
【Django实战入门项目】是针对初学者设计的一套教程,旨在帮助他们快速掌握Django框架,从而能够构建实际的Web应用。Django是Python语言中最受欢迎的Web开发框架之一,以其“ batteries included ”的理念,提供了...
【标题】:“django博客项目前端模板.rar”是一个与Python的Django框架相关的压缩包,它包含了一套完整的Django博客项目的前端模板。这个模板设计旨在为开发者提供一个基础的、可自定义的用户界面,用于展示博客内容...
【Django博客项目源码+mysql数据库】是一个适合新手学习的实践项目,它结合了流行的Python Web框架Django和关系型数据库MySQL。这个项目提供了一整套完整的源代码,可以帮助初学者快速理解如何构建一个基于Django的...
使用python的django开发的一个商城项目源码 使用python的django开发的一个商城项目源码 使用python的django开发的一个商城项目源码 使用python的django开发的一个商城项目源码 使用python的django...
前几天写的django 简易博客开发记录,贴个链接吧 django 简易博客开发 1 安装、创建、配置、admin使用 http://www.cnblogs.com/cacique/archive/2012/09/29/2707976.html django 简易博客开发 2 模板和数据查询 ...
Django项目实战 - 基于Python开发,包含21个文件,如PY、XML、GITIGNORE、IML、LICENSE、...该项目为用户提供了一个基于Django的实战项目,通过界面交互和功能模块,为用户提供了一个高效、易用的Django项目解决方案。
在django框架项目里实现了一个echarts数据可视化看板的模板界面,不仅实现了可视化看板的布局(标题、当前时间),而且里面还包括了2个柱状图、2个折线图、2个饼图的使用,以及中国地图map的使用。
【Python-Django练手项目详解】 Django是一个高级的Python Web框架,用于快速开发安全且可维护的网站。本项目是针对初学者设计的一个实践项目,旨在帮助刚刚接触Django的开发者熟悉其基本概念和工作流程。通过这个...
在本资源"django+vue分离项目实战.rar"中,我们将探讨如何使用现代Web开发技术Django和Vue.js来实现一个完整的前后端分离的实战项目。这个项目需要的基础环境包括Python 3.6及以上版本、Django的最新版、Node.js的...
本实例将探讨如何在Python3环境下结合Django和MySQL数据库进行项目开发。 1. **Django与Python3的结合** Django是完全支持Python3的,从Django 1.6版本开始,就已全面支持Python3.x。Python3提供了许多改进,包括...
【Python Django 项目个人网站(完整代码)】 Python Django 是一个高级Web开发框架,它采用“模型-视图-控制器”(MVC)设计模式,为开发者提供了强大的工具来构建高效、可扩展的Web应用程序。这个项目是一个基于...