成品小说网站源码分享(小说网站系统源码)

各位老铁们好,相信很多人对成品小说网站源码分享都不是特别的了解,因此呢,今天就来为大家分享下关于成品小说网站源码分享以及小说网站系统源码的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

前言

度娘啊,你以为你把百度网盘取消限速了,我们就满意了?当然不满意,还有某度文库呢!本来好好的文档,非得不让我们下载……今天,就教大家跟我一起写某度文库下载器Weeker,拒绝某库,从我做起。

私信小编01即可获取大量Python学习资源

我们的下载器是一个GUI程序,具体架构是,先写核心文件(get.py),再写命令行解析文件(weeker.py),接着使用Fire生成命令行,最后用Gooey把CLI转换为GUI。

准备

安装

安装Python3.8;安装依赖(依赖的作用下文会详解):pipinstallrequestsdocxbeautifulsoup4Gooey

目录

初始化项目(下面的脚本是在Unix或Linux上运行的):

复制代码隐藏代码\ncd/path/to/project\nmkdirWeeker\ntouchget.pyweeker.py

爬虫核心

第一步,打开get.py,先引入类库:

复制代码隐藏代码\nfromosimportgetcwd,system\nfromreimportsub\n\nimportrequests\nimportdocx\nfrombs4importBeautifulSoup

每个模块的作用如下:

模块名称

作用

os

获取当前目录

re

替换文档中的特定字符

requests

用来做网络请求,不用多说。

docx

用来将txt转换为docx格式。

bs4

用来把文本从html中解析出来。

由于保存文件时我们需要判断路径,定义一个pwd常量,用来存储“当前路径:

复制代码隐藏代码\npwd=getcwd()

再声明一个geturl:ua:path:output:convert方法,来实现我们的爬虫函数,其中:

参数名称

作用

url

文档地址,比如随便搜了一个:https://wenku.baidu.com/view/11ebd2af42323968011ca300a6c30c225901f0ea.html?fr=search

ua

UserAgent。我试了一下,如果使用浏览器UA是不行的,会爬到一个广告界面,然后告诉你此操作需要登录,因此我们要使用Googlebot或Baiduspider来绕过UA检测(这就是为什么搜索引擎能搜到),以为我们是一个搜索引擎。跟推荐使用后者,毕竟百度和文库一家人嘛。

path

存储目录,不包括文件名。

output

带有后缀名的文件名。

convert

转换后的格式。因为作者比较懒,所以此字段只能填写docx。

编写get:::::函数

获取html&解析

把光标移到get:::::函数。首先照例我们要用requests,并且祭上bs4一条龙解析:

复制代码隐藏代码\nheaders={&39;:ua}\nresult=requests.get(url,headers=headers)\nsoup=BeautifulSoup(res.text,&34;)\n\n39;_百度文库&39;&39;div&34;class&34;bddoc-reader&39;\\n&扩展数组\neveryline=[i.replace(&39;,&39;)foriineveryline]\neveryline=[i.replace(&39;,&39;)foriineveryline]

保存文件

接下来就是保存文件。我的思路是,先按照txt格式保存,然后再判断convert参数,如果填写了docx,再将txt加后缀并修改为docx。

复制代码隐藏代码\nfinal_path=path\n39;/&39;/&39;/&39;w&39;utf-8&39;\\n&34;wenku:error:Outputdirectorydoesnotexist.Quitting.&如果有convert请求\nifconvert==&39;:\nwithopen(final_path+&39;+output)asf:\ndocu=docx.Document()添加段落\ndocu.save(final_path+&39;+output+&39;+convert)39;rm&39;/&删除try中保存的文件

创建GUI

打开weeker.py。首先是两句import,其中Gooey可以用类似argparse的语法将CLI转换为GUI。

复制代码隐藏代码\nfromgooeyimportGooey,GooeyParser\nimportget

接着添加if__name__==&39;:

复制代码隐藏代码\nif__name__==&39;:\nmain()

我们来定义一下这个main():

复制代码隐藏代码\n@Gooey(encoding=&39;,program_name=&34;,language=&39;)\ndefmain():\nparser=GooeyParser(description=&34;)\nparser.add_argument(&34;,metavar=&39;,widget=&34;)\nparser.add_argument(&34;,metavar=&39;,widget=&34;,choices={&34;:1,&39;:2})\nparser.add_argument(&34;,metavar=&39;,widget=&34;)\nparser.add_argument(&34;,metavar=&39;,widget=&34;)\nparser.add_argument(&34;,metavar=&39;,widget=&34;,choices={&39;:1})\nargs=parser.parse_args()\n\nget.get(args.url,ua=args.ua,path=args.path,output=args.output,convert=args.convert)

@Gooey是一个修饰器,可以把main()转换为一个Gooey函数。在main中,我们写下类似argparse的parser.add_argument函数,最终定义args=parser.parse_args(),从args的成员获取每个参数的输入,传到get.py里。我们运行一下,神奇的一幕发生了:

我们成功地把CLI转换成了GUI!!!

注I:如果你喜欢命令行,可以GitHub搜python-fire,直接将函数和参数暴漏给CLI,效果更佳。注II:因为电脑原因,打包不了成品,因此有需要者请自行编译。注III:附件里有两个py文件。注IV:我刚看见源码里面有一句import写错了,如果你下载了源码,请先照文中代码核对一下。

文章分享结束,成品小说网站源码分享和小说网站系统源码的答案你都知道了吗?欢迎再次光临本站哦!

站内搜索