在進行數據採集模塊開發以前咱們先來看看製做好管理界面效果圖: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目錄中) 用命令行打開。以下圖: