999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于農業的MVC設計模式的網絡蜘蛛的實現

2016-11-19 08:41:24楊本輝
農家科技下旬刊 2016年4期

楊本輝

摘 要:利用PHP語言開發的基于農業的MVC設計模式的網絡蜘蛛。可以實現采集,能夠把各類的互聯網信息或者數據采集到自己的數據庫中,然后再進行一系列的處理。本文介紹的是整個網絡蜘蛛從無到有的過程。利用MVC的架構思想開發出具有模塊化、易于多人開發、易于維護性、易于拓展和易于二次開發的特性的農業網絡蜘蛛。

關鍵詞:PHP;MVC;農業網絡蜘蛛

一、引言

農業(Agriculture)是利用動植物的生長發育規律,通過人工培育來獲得產品的產業。農業屬于第一產業,研究農業的科學是農學。農業的勞動對象是有生命的動植物,獲得的產品是動植物本身。農業提供支撐國民經濟建設與發展的基礎產品。

傳統農業發展到今天,生產力與生產資料已經不能匹配時代的發展。特別作為人類的精華,很多的農業相關寶貴的知識,不能夠很好地傳承與發展。而知識的傳承性,關系到人類的興衰。如果知識不能很好的傳承,那么后世的人類就必須重新去研究、探索、總結。無疑,農業相關前人知識的研究不止要傳承下去,而且還要很好的傳承下去。

互聯網是一種現今先進生產力的技術集,它集合了IT、網絡、大數據、人工智能等各種技術。它是人類的先進生產力與生產資料。農業與互聯網的結合將對傳統農業帶來全新的血液。結合互聯網的高速處理、持久存儲以及快速獲取的能力,互聯網將把農業知識進行極好的傳承,最終將會在講來把農業推向一個新的高度。

二、網絡蜘蛛的定義與原理

網絡蜘蛛即Web Spider,是一個很形象的名字。如果把互聯網比喻成一個蜘蛛網,那么Spider就是在網上爬來爬去的蜘蛛。那么網絡蜘蛛到底是做什么的呢?

其實網絡蜘蛛就是一種獲取互聯網數據到特定數據庫系統中的一種程序工具,它的作用就是不斷的獲取互聯網的內容,通過特有的過濾技術,最終把內容獲取到數據庫系統中,最終供用戶來檢索信息以及資源。

從架構層面上來說:網絡蜘蛛是有很多種設計模式的,每種模式都有不同的應用方向。常見的設計模式可以分為幾類。

1. 深度優先。深度優先是指網絡蜘蛛會從 起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之后再轉入下一個起始頁,繼續跟蹤鏈接。這個方法有個優點是網絡蜘蛛在設計的時候比較容易。

2. 廣度優先。廣度優先是指網絡蜘蛛會先抓取起始網頁中鏈接的所有網頁,然后再選擇其中的一個鏈接網頁,繼續抓取在此網頁中鏈接的所有網頁。這是最常用的方式,因為這個方法可以讓網絡蜘蛛并行處理,提高其抓取速度。

3.通用方式。網站內容多種多樣,結構也是各有不同,如何做到精準抓取呢。這就需要一個通用的結構體系。通用方式的結構體系可以分為以下三個步驟:

(1) Url網址規則獲取

(2) Listing列表頁面獲取

(3) Content最終內容頁面獲取

4.幾種方式的對比。無論是深度優先,還是廣度優先,在獲取內容上通常是獲取一個超鏈接地址后一個一個的爬行,在有些我們不得不對特定的網站進行內容抓取的時候就沒有方法了。在這一種情況下,我們所需要的其實是精準的抓取而不是一個接一個的“爬取”。所以深度優先和廣度優先在這一類型的情況下是不適用的。通用方式就是解決這種情況的。通用方式會按照用戶需求有選擇的獲取內容。

三、農業網絡蜘蛛程序國內外現狀

1.國外情況。國外的IT水平相對較高,我們可以在國外看到一些不錯的網絡蜘蛛。

(1)Larbin。larbin是一種開源的網絡爬蟲/網絡蜘蛛,由法國的年輕人 Sébastien Ailleret獨立開發。larbin目的是能夠跟蹤頁面的url進行擴展的抓取,最后為搜索引擎提供廣泛的數據來源 。

(2)Spiderman。Spiderman 是一個基于微內核+插件式架構的網絡蜘蛛,它的目標是通過簡單的方法就能將復雜的目標網頁信息抓取并解析為自己所需要的業務數據。

(3)OpenWebSpider。OpenWebSpider是一個開源多線程Web Spider(robot:機器人,crawler:爬蟲)和包含許多有趣功能的搜索引擎。

2.國內情況。國內的爬蟲程序一般數量不多,質量也不好,大多數程序是對于國外開源程序的引用,以及二次開發,所以不做多講。

四、程序具體實現(程序設計簡介)

1. 文件結構。對于一個程序的實現,文件結構是十分重要的。良好的文件結構常常意味著程序功能的合理。本程序的文件結構圖如圖1所示:

圖1 文件結構圖

Fig.1 The file structure diagram

2. 網絡蜘蛛的設計與流程。此農業網絡蜘蛛是一個通用的采集程序,采用的是通用方式,基于MVC開發思想,基于語言PHP,所需要的數據庫是開源的輕量級數據庫sqlite,運行的宿主操作系統是Linux。由于考慮到程序的通用性,所以每一個基礎的模塊是獨立封裝的,好比一個一個的零件。這樣的好處就是用戶可以根據自己的需求來組裝功能,這樣可以使得程序更加通用。程序的設計圖如圖2所示:

程序總共分為4個模塊,分別會在下一段說明。

(1)用戶模塊。用戶模塊主要負責管理整個程序的登錄用戶,比如用戶的增刪改查。還有密碼以及權限的配置。

(2) 配置模塊。配置模塊主要負責把用戶的一些設置信息存儲起來以方便供后續程序使用。

(3)采集模塊。采集模塊是整個網絡蜘蛛的核心模塊,整個蜘蛛的采集性能都是由這個模塊實現。其中這個模塊中有幾個核心問題的處理方式如下:

① 采集重復怎么辦。采集重復在網絡爬蟲中是普遍存在的。由于我們獲取源網站的數據的數據量都不小,而大多數時候我們在采集listing列表的url的時候的時候,由于源網站的數據庫可能會有一些插入操作別人在同時進行。所以這個時候取出的數據難免會和之前的數據想重復,這個其實是一個很正常的問題。

解決采集重復的方法需要我們利用數據庫的一些特性,把一些字段設置為unique,最終用replace into(sqlite的sql語句)進行插入。

②采集出錯、中斷怎么辦。采集過程中出錯或者中斷是正常的,原因有很多,可是很多時候就只是僅僅由于網絡的不問題,或者我們采集的源服務器不穩定。而無論什么原因,這樣肯定會造成數據的丟失。而這個時候怎么辦呢。

解決方法實際上是在數據表里面添加一個字段專門來記錄數據寫入是否成功。成功就為1不成功就為0。

(4)過濾模塊。由于各種原因,我們可能要對現有的一些采集數據進行一些過濾,或者一些替換。在這種情況下,可能就要使用到過濾模塊,過濾模塊常常用于一些非法內容的替換,或者一些無用內容的過濾。

(5)發布模塊。等到數據從采集模塊獲取了以后,數據是存放在網絡蜘蛛的數據庫中。但是這樣的數據是無法直接導入到現有的一些主流的建站程序的。我們還必須要開發一個中間件來適應相應的cms,從而達到可以把數據導入其他開源程序的目的。

(6)插件模塊。由于程序的功能很多時候不可能一下子考慮的十分全面,并且在程序開發中我們十分有必要使程序能夠拓展第三方的程序以使程序更加強大、健壯。所以特別多出一個插件模塊,主要負責整個程序新功能的拓展。而這個拓展一般由其他開發人員按照本程序提供的接口實現。

(7)欄目模塊。由于采集的內容種類繁多,所以必須要有一個模塊來使程序采集來的數據按照要求進行歸類,進行管理。

(8) 內容模塊。內容模塊主要網絡蜘蛛負責采集來的內容的增刪改查操作。這樣可以有效的管理采集來的資源。

五、本程序的優勢

1.基于linux+nginx+PHP+sqlite。考慮到本程序的性能以及開發的便利性,本程序采用的編程語言是目前最為流行的網絡編程語言PHP。

Sqlite是一個輕量級的數據庫,存儲效率高,數據以單文件的方式存儲,節省系統資源占用,是一個十分優秀的開源輕量級數據庫。本程序的開發所存儲的數據都將使用sqlite數據庫存儲。

2.基于MVC。MVC是一種思維規范,沒有明確的定義,只有一個需要遵循的思考方式,所以說,MVC是有不同的種類的,因為這取決于某一種MVC框架作者的思想。一般來說現在中國的互聯網流行的MVC實際上可以概括為:模型(Model),視圖(View)和控制Controller)。本程序的設計圍繞以下幾個方面作為思考:

(1) 各施其職,互不干涉。

(2) 有利于開發中的分工。

(3) 有利于組件的重用。

六、存在的客觀問題

面向對象的設計思想注定程序是比較龐大的,效率相比面向過程偏低。

對于一個程序來說,性能是很重要的。不過對于面向對象的程序設計都會有一個致命的弱點就是程序的性能不高。因為良好的拓展性以及模塊化的MVC開發思想多多少少都是會以損失一些程序性能為代價的。

七、結語

本網絡蜘蛛基于MVC的開發思想,使用PHP開發語言,能夠廣泛應用于各個行業的信息以及資源獲取,從而用作分析或者其它目的。本網路蜘蛛從編寫到成熟歷時3個月,中間大小修改大約50次。測試數據數目超過500萬次。

參考文獻:

[1] 開源中國. larbin. [EB/OL]. http://www.oschina.net/p/larbin. 2013-03-14.

[2] 開源中國.spiderman. [EB/OL]. http://www.oschina.net/p/spiderman.2013-3-14.

[3] 開源中國.openwebspider.[EB/OL].http://www.oschina.net/p/openwebspider. 2013-3-14.

[4] 開源中國.snoopy. [EB/OL].http://www.oschina.net/p/snoopy.2013-03-14.

[5] ChoJ,Garcia-MolinaH,PageL.Efficient crawling throughURL ordering. Proceedings of the7thACM-WWW InternationalConference . 1998.

[6] 郭海燕.搜索引擎中網絡爬蟲技術研究[D]. 西安電子科技大學 2009.

[7] 李學勇,譚義紅,田立軍,歐陽柳波,李國徽.ε-貪婪策略在網絡蜘蛛搜索策略中的應用[J].湖南工程學院學報(自然科學版). 2004,(02).

[8] 李學勇,歐陽柳波,李國徽.基于模擬退火機制的網絡蜘蛛搜索策略[J].湖南理工學院學報(自然科學版).2004,(02).

[9] 龍宇巍,王永成,許歡慶.定題搜索引擎Robot的設計與算法[J].計算機仿真.2004,(04).

[10] 華偉臣,張秀瓊.網絡蜘蛛搜索研究[J].樂山師范學院學報. 2006,(05) .

主站蜘蛛池模板: 天天爽免费视频| 亚洲中文字幕国产av| 美女无遮挡拍拍拍免费视频| 青青操视频在线| 欧洲日本亚洲中文字幕| 波多野结衣第一页| 精品国产免费观看一区| a级免费视频| 国产成人在线小视频| 国产区免费| 国产屁屁影院| 手机看片1024久久精品你懂的| 麻豆国产在线不卡一区二区| 毛片网站在线看| 国产一区二区三区在线精品专区 | 美女一区二区在线观看| 国产福利免费在线观看| www成人国产在线观看网站| 国产精品免费入口视频| 青青操国产视频| 国产成人夜色91| 日韩在线网址| 一级一毛片a级毛片| 超碰aⅴ人人做人人爽欧美 | 又大又硬又爽免费视频| 日韩在线永久免费播放| 日本不卡在线视频| 中文一区二区视频| 亚洲欧美日韩成人在线| 国产成人福利在线视老湿机| 本亚洲精品网站| 另类欧美日韩| www精品久久| 亚洲天天更新| 亚洲区欧美区| 亚洲欧美日韩精品专区| 中文字幕永久在线观看| 99精品免费在线| 色婷婷综合激情视频免费看| 18黑白丝水手服自慰喷水网站| 日韩小视频在线播放| 亚洲欧美日韩天堂| 极品私人尤物在线精品首页| 国内精品小视频在线| 国产毛片不卡| 伊人成色综合网| 国产亚洲第一页| 亚洲美女视频一区| 成人精品午夜福利在线播放| 欧美啪啪一区| 亚洲AV无码一区二区三区牲色| 91午夜福利在线观看| 亚洲国产精品一区二区高清无码久久| 久久特级毛片| 一级爱做片免费观看久久 | 四虎亚洲精品| 欧美综合区自拍亚洲综合绿色| 久久人与动人物A级毛片| 国产又粗又猛又爽视频| 五月婷婷综合色| 亚洲欧美一区二区三区蜜芽| 久久这里只有精品2| 亚洲青涩在线| 又爽又黄又无遮挡网站| 91精品久久久久久无码人妻| 日韩一区精品视频一区二区| 日韩高清成人| 亚洲无码一区在线观看| 永久成人无码激情视频免费| 91麻豆精品国产91久久久久| 日韩欧美91| 永久毛片在线播| 久久大香伊蕉在人线观看热2| 老司机久久精品视频| 专干老肥熟女视频网站| 免费无遮挡AV| 欧美成人亚洲综合精品欧美激情| 97一区二区在线播放| 久久青草热| av大片在线无码免费| 亚洲视频二| 国产美女在线免费观看|