全托管文章智能采集系统(一家极具 )
优采云 发布时间: 2022-04-02 22:05全托管文章智能采集系统(一家极具
)
最近很可能会离开去加入一家很有挑战性的公司,时间和精力上会有比较大的调整。这个系统也是为了娱乐目的,但目的是绝对纯粹的。
由于最初的计划时间,一切都简单快捷。主要特点如下:
1.前端页面开发直接bootstrap 3.0 。后台管理页面也使用了基于bootstrap的UI框架。(基本复制)
2. HtmlAgiltyPack 组件用于数据采集。
3. 国际奥委会尝试了城堡。结合 CommonServiceLocator 开源组件。
4.数据存储可以方便地在MongoDb和SqlServer之间切换(AppSettings.config的StoreProvider配置部分)。SqlServer 的数据供应使用 EntityFramework 的 Code First。MongoDb的C#驱动是官方的驱动包,简单封装了一个Helper。
5. Log4Net 用于日志记录。
6.评论系统直接嵌入了更多要说的内容,感觉还不错。找了半天,好像没有找到远程访问数据接口。
7. 没什么好说的。
本来应该在月底前完成的,但现在看来不可能了。只有在实际做的过程中,才发现需要解决的事情太多了。嗯,从侧面也反映出他的水平还是挺菜的。总结起来有以下几点需要改进(主要是后台管理):
1.用户权限控制(超级管理员和普通管理员)。
2、数据采集管理(类似于增量采集、定时采集、采集配置等)。
3、后台管理页面导航菜单的控制(主要判断左侧菜单项的活跃度、面包屑导航的生成等)。
4.影视的图片信息直接调用Http图片,无需本地存储(下载图片方便,恐怕需要单独的图片服务器)。
5. 采集 提供程序使用多线程,但我对多线程了解不多。有时候好像出了什么问题……
6、站点配置管理。这是一个页面、序列化和反序列化问题。但它只是没有发生。
7、网站统计不完善。如日志记录、访客统计等。
希望我能找到时间和精力在未来继续研究这些东西......
好吧,我拍了几张照片发过来看看。
项目结构*敏*感*词*:
首页(采集三个类别:电影、*敏*感*词*、电视剧。出于测试目的,仅采集50个条目):
这是详细页面:
这是详细信息页面上的评论框。字幕信息请求是射手网的接口:
这是后台管理页面:
登录:
锁定:
视频管理列表页面:
视频管理详情编辑页面:
这是管理员管理页面(仅对超级管理员可见,但目前不进行此控制):
管理员详情页面(管理员可以被锁定):
我也简单地做了一个访客统计(统计中遗漏了很多东西):
仅供初学者学习。项目托管地址为:
补充:
项目的数据存储可以在mongodb和sqlserver之间切换。其中,mongodb的数据库连接字符串为:
我在开发的时候,配置了mongodb的权限,添加了用户名和密码。出于安全考虑,默认端口 27017 已修改为 27627。这些配置因个人需要而异。另外,我简单地写了一个脚本来启动mongodb数据库,位于Movi.RazorWeb/App_Data下的mongodb_data.txt。当然也可以直接添加为Windows服务随系统启动。脚本的内容是:
start bin/mongod.exe --dbpath .\db --logpath .\log\log.log --auth --port 27627
start bin/mongo.exe --port 27627 -u admin -p admin --authenticationDatabase movi
把上面的脚本存成bat格式,每次需要运行mongodb数据库的时候点一下。(当然,你要配置mongodb数据库来匹配上面脚本的内容)。关于mongodb配置的更多信息,请参考源代码项目Movi.MongoRepository下的db.txt文档。
对于EntityFramework,代码优先的开发方式,除了配置正确的数据库连接字符串(这个没什么好说的),结合实际情况,结合nuget执行数据库initial或change命令。三个最常用的命令是:
Enable-Migrations
* 启动迁移功能,会在项目根目录下生成 Migrations 文件夹
Add-Migration -StartupProjectName
* 在指定的项目中增加一个迁移点,此命令后会要求输入一个 Name 参数,此参数的值为迁移点名称
* 假设输入的迁移点名称为 init 则会生成一个类似如下的文件 201202290718442_init.cs,其包含两个方法 Up() 和 Down(),分别用于此迁移点的升级和降级
Update-Database -StartupProjectName (将指定的项目的数据库结构升级到最新)
上述命令的执行方式为: 打开程序包管理器控制台,将默认项目选择为:Movi.EFRepository。另外,请将 Movi.EFRepository 设置为启动项目。
如遇错误,请自行上网查找资料解决。