


摘要:基于網絡的銀杏信息整合分析系統旨在讓銀杏研究和普及更加方便快捷,從而帶動對銀杏這一隱藏的寶庫的全民探索。本系統是利用python語言實現網頁抓取和信息篩選的,可以按照選擇的關鍵詞在某網站部署爬蟲,從而獲取需要的信息。
關鍵詞:網絡;銀杏;爬蟲;信息整合
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)34-0087-03
1 概述
基于網絡的銀杏信息整合分析系統旨在讓銀杏研究和普及更加方便快捷,不僅對專業林學人士提供了另外一種更加現代化的研究道路,還對普通大眾了解和普及銀杏知識有較大的影響,從而帶動對銀杏這一隱藏的寶庫的全民探索。網站內除了提供基本的銀杏信息以及相關的增加、刪除、更改和查詢功能外還創新地在網內實現站內搜索功能,使得用戶可以直觀地看到全網或指定網站內關于銀杏的全面信息。
2 爬蟲技術
2.1 爬蟲分類
網絡爬蟲是一種信息采集的技術,按照實現的技術可以分為通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲和深層網絡爬蟲。
通用網絡爬蟲也叫作全網爬蟲,適用于搜索范圍較廣的情況。爬行方法又分為深度優先和廣度優先。
深度優先策略是以根網址為開始頁面,依次爬取下一級網頁,直至爬取結束,再從上一級網頁的其他下級網頁開始爬取,直至根網頁的所有子網頁都被爬取結束。這種爬取方法會浪費爬取時間和空間,只適用于站內搜索。
廣度優先爬取策略,是從根網頁開始,爬取此頁面上所有有用的鏈接,并存儲于網址集合,然后從網址集合中依次爬取頁面信息,每次爬取前遍歷集合,若已經爬取過,則直接丟棄。這種方法爬行深度淺,但范圍廣,內存要求低。
以上幾種爬蟲技術各有優缺點,具體使用需要按照系統的需求來更改。由于本系統在當前階段更注重簡介程度且爬取是否方便,所以使用的是通用網絡爬蟲技術,此技術需要在程序中搭建一套框架,按照一定流程來完成對一個網站內信息的爬取。
2.2 爬蟲在數據分析領域的應用
基于爬蟲的銀杏信息整合分析系統,大致上是通過爬蟲爬取網絡上的數據,再用BeaytifuISoup對數據進行細化分析,最后存入后臺并輸出于前端。爬蟲在數據分析鄰域,是分析數據的來源和基礎,而數據分析又為爬蟲提供了新的可爬取的源頁面。數據采集和數據分析相輔相成,合作完成網絡數據的整合于分析。
2.3 爬蟲scrapy框架
Scrapy是一個專門用于實現爬蟲的框架,內部具有對HT-ML和XML源數據篩選和處理的功能。它提供了許多過濾器,用于在spider之間實現共享,且支持多次使用。
Scrapy是一個框架,使用者可以根據框架的模塊來編寫爬蟲。
1)具有對爬蟲性能和狀態的檢測工具,尤其在有多個爬蟲并行工作時,可以用來檢測并上報爬蟲的效率、是否成功。
2)提供了shell終端來與用戶交互,自動檢測XPath表達式,使得用戶實現爬蟲更加簡單快捷。
3)提供了一系列工具,例如System service、Web service、Telnet終端、Logging,還可以支持Sitemaps爬取。
4)具有緩存的DNS解析器。
2.4 爬蟲BeautifulSoup工具
在抓取到所有頁面信息后,還需要將龐大的信息進行細化和分類,此時就需要BeautifuISoup工具。
Beautiful Soup是python的一個庫,它提供了許多高效的函數,用來篩選和處理對用戶有用的數據。Bs4是一個工具箱,處理剛爬取得到的網頁數據文檔,從而為用戶提供數據,它實現起來比較簡單,所以代碼量還是比較小的。
Beautiful Soup在處理文檔前,首先將輸入的待處理文檔轉換為Unicode編碼,再以utf-8編碼轉化并輸出處理好的文檔,所以一般情況下,無須開發人員考慮過多的編碼問題,Beauti-ful Soup可以自動識別編碼方式。
3 開發語言及軟件
3.1Python語言
Python是一種面向對象的解釋型計算機程序設計語言,是純粹的自由軟件,已經廣泛用于web編程和系統事務處理。“優雅”“明確”“簡單”是Python的設計概念。Python語言具有較為強大的擴展性,可以融人多種語言中,也可以兼容各種語言制作的模塊,只需將用其他語言完成的代碼模塊生成包,在Py-thon中導入該第三方包即可使用。
相對于java、c#、C++等靜態編程語言,Python抓取網頁更加簡單明了,而相對于shell等其他動態腳本語言,python的url-lib包具有較為完整的訪問網頁的工具。除此之外,許多的網站都是不允許普通爬蟲的,往往需要一些關鍵詞段,例如登陸注冊信息,這時就需要模擬用戶的行為,而在Python中提供了Re-quests等第三方包,可以比較容易地實現網站的爬取。
3.2 開發軟件PyCharm
PyCharm是一種基于python語言的開發工具,并附帶有豐富的庫。PyCharm主要功能:
1)代碼自動補全:提供了代碼補全功能,支持代碼折疊和分割窗口的智能化操作,可配置的編輯器,可幫助用戶更快更輕松地完成編程工作。
2)項目代碼導航:可以幫助用戶在一個文件中通過導航進入另一個文件中的對應函數,從一個方法可以跳至申明處或穿過類的層次。
3)代碼檢測:根據用戶的輸入自動檢測語法錯誤,包括變量申明、類型、作用域等問題,還包括檢測前推,后退和移動重構的功能。
4)支持Django:PyCharm有自帶的css、html和JacaScript編輯器,使得用戶可以更方便地使用Django框架。
5)支持諸多引擎:用戶可以使用多種引擎進行css、html和JacaScript文件的調試,包括360極速、IE、火狐、Google等瀏覽器。
4 系統功能需求分析
系統需求分析是一個系統的開端,它規定了系統需要完成什么功能,完成至什么程度,如何完成此功能以及需要注意的問題,用戶操作需要哪些細節考慮。
基于爬蟲的銀杏信息整合分析系統的客戶功能模塊需要的是一個人性化、操作方便且數據質量高的網站。此系統要求將網絡中各大網站的銀杏樹相關信息提取在個人網頁中,其中兩部分最為重要,一是顯示在頁面上數據的質量,二是頁面的美化和人性化。按照頁面劃分,系統可分為welcome頁面和主頁面;按照功能模塊劃分,主頁面可分為三個模塊,分別是導航欄模塊、研究專題模塊和銀杏公園模塊。
4.1 welcome頁面功能需求分析
Welcome頁面:作為網站給用戶的第一印象,需要足夠美觀且簡約,并能提供圖片預覽操作,以及相應的圖片切換操作,頁面下方安排一處鏈接,點擊跳轉到主頁面,也就是主要信息的放置頁面。如圖1。
4.2 主頁面導航欄功能需求分析
主頁面是整個系統的核心頁面,是主要數據的放置處。頁面包含了三個板塊。將主頁分為多個板塊,目的是使整個網站的外觀更加美觀,頁面更加簡潔清楚。
第一版塊為導航欄,分為“首頁”“最新研究”“銀杏圖庫”“下載專區”“關于網站”五個欄目。
點擊“首頁”按鈕,將會跳轉至welcome頁面。
點擊“最新研究”按鈕,將會在主頁顯示欄展示爬取的最新研究信息。
點擊“銀杏圖庫”按鈕,將會在主頁顯示欄展示爬取的銀杏相關圖片,帶有切換圖片功能和下載圖片功能。
點擊“下載專區”按鈕,將會提供“最新研究下載”,“最新報道下載”,“圖片下載”和“研究專題下載”四個圖形按鈕,用戶點擊則下載對應的文件至本地。
點擊“關于網站”按鈕,則顯示一個靜態頁面,包含網站的來源,名稱,作者,指導和聯系方式。
第二板塊是左側的兩個模塊,“學術動態”和“銀杏公園”。
第三板塊是顯示板塊,布置于網頁的中間,用于根據用戶操作展示相關的信息。
如圖2所示:
4.3 學術動態頁面功能需求分析
該頁面是通過主頁面中學術動態欄所選方向決定的,總共包含了五個方向,分別是“銀杏葉提取物專題”“銀杏數品類專題”“銀杏樹價值研究專題”“銀杏樹授粉實驗專題”和“最新媒體報道專題”。這些信息均是從網絡中爬取得到,并經過篩選后整合至頁面中。該板塊作用是搜索相關網站集,將銀杏樹相關研究方向的最新發展動態集合于“銀杏圖書館”網站,使得用戶可以在本網站內了解到最新的研究動態。
4.4 銀杏公園頁面功能需求分析
銀杏公園頁面也是由主頁面中相關板塊選項決定的,用于靜態展示全國幾個著名的銀杏樹旅游景點的相關信息,包含圖片、簡介和旅行社鏈接。簡介包括景點地址和具體介紹。用戶可以在此網站點擊鏈接直接進入旅行社的對應旅行線路信息,這樣可以拓展網站的范圍,使得覆蓋面更加廣泛,網站的延展性更強。
4.5 信息檢索功能需求分析
信息檢索功能設置在信息展示的相關頁面上,若不使用此功能,即不在文本框中輸入任何內容,則會在頁面上顯示所有的完整數據。若用戶輸入關鍵詞,則系統按關鍵詞搜索文件中所有文章的標題,若含有關鍵詞,則符合篩選條件,最后將對應的文章集合輸出到頁面上,這樣將會大大降低用戶自己搜尋的精力,使得用戶操作更簡單,更舒適。如圖3所示。
4.6 網站分享功能需求分析
現如今眾多的網站都配備有網站分享功能,為了更加現代化、跟上潮流并提高用戶體驗,使得網站更加人性化,特添加了網站分享功能。
按鈕組共包含了三個圖片按鈕,分別為微博、微信和QQ分享鏈接。點擊微博或QQ按鈕,會跳出微博和QQ空間自帶的發布頁面,然而微信并沒有這樣的功能頁面,且其為暫時用戶最多的軟件之一,所以還需要設置微信分享功能:點擊微信按鈕后,會跳出微信網頁版的登錄界面,即掃二維碼登錄微信,登錄后由用戶自行分享。
5 爬取網站的考量
基于爬蟲的銀杏信息整合分析系統,最重要的部分便是爬取的信息源是否具有足夠高的專業度、準確度。在選擇爬取網站時,需要考慮到如下幾個因素:
權威性:一個系統的信息源是否可靠,決定了該系統的發展和命運,不純凈、不準確,甚至是錯誤的信息源會影響一個系統呈現給用戶的數據精度。
針對性:一個數據源若是缺乏針對性,就會造成數據模糊,精度不足,從而呈現于自己系統上的數據文不對題,同樣造成用戶體驗差。
格式清晰:分為數據格式和HTML網頁格式。網站的數據格式指文字內容中是否摻雜一些無用的空格、亂碼、標點符號,是否有正常的分段。HTML網頁格式指的是爬取對象的HTML格式網頁是否規范,是否有足夠的標識來標記所需要爬取的標簽,
是否反爬蟲:爬取一個網站的前提是該網站是否允許爬蟲爬取網頁內容。若存在反爬蟲程序或是防火墻之類的阻撓,則此網站不可選為“銀杏樹圖書館”爬取對象。
數據量:是指一個待爬取網站的相關數據是否完善和足夠,當一個網站的數據量太小時,也失去了爬取的意義。
重復度:若是該待爬取網站有較多的內容是重復于一爬取網站的,則該頁面也是不宜爬取的。
綜合考量,本系統爬取了如下幾個網站:
百度百科網、中國林業網一銀杏網、中國銀杏網(非官方網站)、中國植物志、全景網、知乎網。
6 總結
本系統旨在將網絡中錯綜繁雜的銀杏樹信息有條理的顯示在網頁中,供用戶瀏覽和下載,之后會增添數據量,爬取更多網站的信息,并添加更多方便用戶的功能。
參考文獻:
[1]曹福亮.銀杏[M].北京:中國林業出版社,2007.
[2]胡松濤.PYTHON網絡爬蟲實戰[M].北京:清華大學出版社,2016:13-18.
[3]范傳輝.Python爬蟲開發與項目實戰[M].北京:機械工業出版社,2017:47-76.
[4]埃里克·馬瑟斯.Python編程從入門到實踐[M].北京:人民郵電出版社,2016:123 -126.
【通聯編輯:王力】
收稿日期:2019-09-16
作者簡介:苗哲(1971-),男,江蘇南京人,南京林業大學信息學院,高級實驗師,碩士,主要研究方向為計算機應用