2.1 Orchard 实践篇--开发数据采集模块

在进行数据采集模块开发之前我们先来看看制作好管理界面效果图:

上是数据采集模块的管理界面

 

上图为数据采集模块自动采集到的数据

根据项目需求,我们接下来需要做的事情如下:

 

数据采集

序号

任务说明

1

创建WebCrawler模块

2

定义一个名为 CrawlerArticle 的内容类型来存放采集来的文章。在该内容类型中同时包含以下字段,便于前台觉得展现方式。

SourceName:数据源名称

SourceUrl:  数据源地址

OpenStyle:打开方式(当前窗口或者新窗口)

ArticleTime:文稿数据(数据源本身创建的时间不是在在本平台中写入的时间)

Visits:访问量原网站该文章的访问量

3

创建用于存放数据源 地址、采集规则。以及采集任务执行策略的表,并提供管理界面。

数据源(CrawlerSourcePart)结构如下:

SourceName:数据源名称

SourceHost:数据源网站域名(即网站的根地址如:http://www.baidu.com/

SourceUrl:数据源地址,指具体冲网站的那一个页面采集数据

LastCrawlerUrl:最后一次访问的Url

Enabled:当前数据源是否启用.

采集策略配置(CrawlerSettingsPart)如下:

Interval   执行间隔时间

Thumbnail      缩略图比例(采集到的内容中的图片将按照该比例处理成文章缩略图)

Ignore    忽略少年前的数据

采集规则配置(CrawlerRulePart)如下:

SourceID 数据源ID与CrawlerSourcePart关联

Behavior 采集行为,指采集的是标题,还是日期,还是访问量等,本项目中只需要用到采集数据表格的容器,以及详细内容,标题、日期等。

Expression     对应与采集行为的正则表达式.

数据源默认图片配置表(DefaultImagePart)如下:

SourceID 关联数据源ID

ImageUrl 图片路径数据采集在采集到没有图片的文稿时候会从数据源默认图片中选择图片作为列表中显示的文稿缩略图如下图:’

 

4

编写任务调度器,以及具体采集执行的代码。

 

2.2.1 Module项目结构介绍

一个Module是一个ASP.NETMVC的项目,使用Orchard的命令行创建Module以后会包含下图的文件夹:

 

Assets:资源文件,用来存放模块用到的JS、样式、图片等静态资源文件夹,该资源文件夹下面必须包含一个web.config用于标识该文件夹是静态资源的文件夹,Orchard才会到这个文件夹查找css样式 JS脚本等。该代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <system.webServer>

    <staticContent>

      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />

    </staticContent>

 

    <handlers accessPolicy="Script,Read">

      <!--

      iis7 - for any request to a file exists on disk, return it via native http module.

      accessPolicy 'Script' is to allow for a managed 404 page.

      -->

      <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" preCondition="integratedMode" resourceType="File" requireAccess="Read" />

    </handlers>

  </system.webServer>

</configuration>

  

另外通常该文件夹只会在模版中用到。

Controllers:控制器文件夹,用于存放MVC模块的控制器。

Drivers:驱动器,用于为ContentPart提供显示和编辑的视图。Orchard使用了一个叫Shape的概念,类似于MVC中的视图。

Handlers:提供ContentPart变化的事件监听。有如下事件:

          OnInitializing:ContentPart初始时 促发该事件

          OnRemoved:ContentPart删除时候触发该事件

  可以利用这些事件来做相应的业务逻辑处理,例如可以用 OnInitializing事件来为ContentPart提供默认值。可以用OnRemoved事件来在ContentPart删除时候进行数据清理、缓存移除等操作。Handlers还包含其他的事件,可以参考官方资料.

Models:实体类即数据库实体类,存放ContentPart的各个属性Models分为ContentPart(用于Drivers确定显示和编辑的样式)以及ContentPartRecord(用于Nhibrerate的数据映射)。ContentPartRecord的各个属性并需用 virtual关键字来修饰。

ViewModels:视图实体类

Services:模块服务类局放于该文件夹,提供业务逻辑,以及数据库操作。

Views:视图文件夹。存放cshtml页面。

 

2.2.2创建WebCrawler模块

Orchard创建Module可以通过命令行来创建

首先进入Orchard的部署目录中找到Orchard.exe(在bin目录中) 用命令行打开。如下图:

 

转载于:https://www.cnblogs.com/Manny2016/p/5394152.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值