在进行数据采集模块开发以前咱们先来看看制做好管理界面效果图:css
上是数据采集模块的管理界面html
上图为数据采集模块自动采集到的数据web
根据项目需求,咱们接下来须要作的事情以下:正则表达式
数据采集数据库 |
|
序号缓存 |
任务说明网站 |
1ui |
建立WebCrawler模块spa |
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 |
编写任务调度器,以及具体采集执行的代码。 |
一个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页面。
Orchard建立Module能够经过命令行来建立
首先进入Orchard的部署目录中找到Orchard.exe(在bin目录中) 用命令行打开。以下图: