Coder Social home page Coder Social logo

people-sdailyepubcreator's Introduction

People'sDailyEpubCreator :用于从人民日报官方网站下载文章并生成EPUB电子书的python程序

📌前言

免责声明

People'sDailyEpubCreator作为一个开源项目在GPL-3.0许可下发布,使用者可以在GPL-3.0许可的条款下自由地复制、分发和修改本程序。程序运行时会自动从人民网获取指定日期的新闻内容,转换为EPUB格式的电子书,所有运行逻辑均可在源码中查看。《人民日报》(电子版)相关内容的版权归人民网所有,受到版权法的保护。本程序的开发旨在为个人学习、研究或者新闻报道提供便利。在使用本程序时,应自行确保其行为符合相关版权法规,并尊重原始内容的版权。对于因使用本程序而可能引发的任何版权纠纷或法律责任,开发者不承担任何责任。

人民网官网版权声明

《人民日报》(电子版)的一切内容(包括但不限于文字、图片、PDF、图表、标志、标识、商标、版面设计、专栏目录与名称、内容分类标准以及为读者提供的任何信息)仅供人民网读者阅读、学习研究使用,未经人民网股份有限公司及/或相关权利人书面授权,任何单位及个人不得将《人民日报》(电子版)所登载、发布的内容用于商业性目的,包括但不限于转载、复制、发行、制作光盘、数据库、触摸展示等行为方式,或将之在非本站所属的服务器上作镜像。否则,人民网股份有限公司将采取包括但不限于网上公示、向有关部门举报、诉讼等一切合法手段,追究侵权者的法律责任。

注意

在且仅在Windows 10下测试运行成功。

此程序暂未成功获取文章内的图片,大约是个八分之五成品

本程序绝大部分由AI人工智能构建,ARRray作为此仓库的发布者、使用者,对程序中代码一知半解。不规范欠考虑之处在所难免,欢迎开issue愉快讨论~

🎠开始使用

使用构建的应用程序(Windows)

直接在release中下载.exe文件后双击运行,输入规则见用法

使用python运行

确保python环境已安装

百度:安装python环境

安装依赖

pip install requests lxml ebooklib

运行python脚本

cd [脚本所在目录]
py People-sDailyEpubCreator.py

🧭用法

输入内容 操作 说明
获取当前系统日期的《人民日报》(电子版) 运行程序后直接回车以获取当前系统日期的《人民日报》(电子版)
helph 打开说明手册 即打开本README镜像于 FlowUs 息流 中的分享页面
-x 获取"x"天前的《人民日报》(电子版) 输入-(减号)和一个正整数
x 获取星期x的《人民日报》(电子版) 输入数字1至7分别代表周一至周日,会根据系统日期自行选择本星期或上个星期
{yyyy}/{yy} {mm}/{m} {dd}/{d} 获取指定日期的《人民日报》(电子版) 中间用空格隔开。支持四位/二位数年份(即年份前两位数可省略)、两位/一位数日期(即一位数月/日前无需添加导0),下同。
{mm}/{m} {dd}/{d} 获取当前年份指定日期的《人民日报》(电子版) 上同。
backb 重新选择日期 等待回车确认时可以输入backb返回重新选择日期。

🛠功能

自动从人民日报官方网站获取指定日期的新闻文章,并转换成EPUB格式的电子书。程序会自动跳过重复的文章,以及在EPUB电子书中保留部分视觉元素,并且支持多种日期输入格式,包括绝对日期和相对日期,以及星期输入。

特征

  • 高兼容性.epub电子书(Windows第三方软件、iOS”图书“app、安卓系统自带/第三方阅读器均可正常阅读)
  • 合并相同"版式"为一级目录,文章标题为二级目录,进度清晰可观,目录跳转流畅
  • 文章内加粗部分还原

未完成的功能

能力有限(╥﹏╥)无能为力

文章内嵌图片(及其下方注释) 程序暂无法获取文章内的图片内容 ——虽然加上图片会导致下载较慢、生成的文件体积较大,但部分图片内容展示了文章重要部分 ——总之我可以不要但是不能没有 试了很多次都没成功
为电子书添加封面 添加一张图片作为电子书封面不复杂,若在封面上加入日期信息就涉及到了代码处理图片 好麻烦(╥﹏╥)
云自动化 目前python程序仅被成功打包为在Windows平台上易用的exe文件,使用pydroid等应用在安卓等其他平台独立运行还是算不算易用。云服务器每日自动运行发送至自己的邮箱应该不算复杂 但 还未配置成功(╥﹏╥)

🎉贡献

如果您对本项目感兴趣,非常欢迎在提交pr对功能进行完善。感谢您对项目的贡献!

✒后记

作为在读中学生的第一个开源项目,这个程序是购入了一个电子书——虽然是可以进入人民日报官网阅读《人民日报》(电子版)的安卓系统,但阅读体验算不上好(网页版无法全屏、只能网页上下翻页——对刷新率低的墨水屏来说不太友好、手机版字号调节后无法保存等),而每家电子书的内置系统对epub应该都有很好的支持,遂于github寻找此类软件后只寻得pdf的下载合并工具着手(让ChatGPT)开发的。PDF的报纸虽还原了原始版式,但在墨水屏上阅读还是不太流畅,同时还在某项目中看到与我同样需求的issue,但没有得到解决方案。于是一边自己使用一边改进,现得到了较为完善的工具,并将其开源。

一个重要的教训

命名一定要规范。原先用文章标题作为epub中XHTML的文件名,存在的所生成文件兼容性差、部分文章(标题以百分号结尾)not found(甚至还专门加了个转换为汉字显示的步骤 但治标不治本)问题。调整命名逻辑后,问题迎刃而解。

✨欢迎点亮star~

people-sdailyepubcreator's People

Contributors

arrray0-o avatar

Stargazers

 avatar Sogrey avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.