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

自定規則的AJAX網頁信息采集功能的設計

2016-11-09 05:16:52胡越張源偉雷軍
物聯網技術 2016年9期

胡越 張源偉 雷軍

摘 要:當前互聯網技術飛速發展,針對網絡上存在的海量數據以及動態網站的出現,文中提出了一種用戶自定規則的AJAX網頁信息采集功能,該功能能夠提取動態網站上的數據,避免垃圾信息的干擾。與傳統信息提取系統相比,用戶可以自定規則,確定目標網站,半自動化以及自定規則操作,使信息提取更加準確和高效。

關鍵詞:自定規則;AJAX網頁信息;PhantomJS;提取數據

中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2016)09-0086-02

0 引 言

當前在數據量龐大的互聯網世界中,網絡上的信息存在諸多問題。虛假信息、重復信息、廣告干擾等這些信息往往都是冗余或者無用的信息,加上互聯網技術的發展與AJAX技術的興起,許多站點從可維護性和增加用戶體驗的角度將數據與網頁分離,通過AJAX從數據庫動態生成數據,而有用的信息往往存在于這些數據中,但搜索引擎無法直接搜索到AJAX網頁信息[1]。自定規則的動態網頁信息能夠采集AJAX網頁信息,并且用戶可以自由選取網站并自定采集規則,功能垂直,目標專一,能夠高效且快速地獲取網頁信息。

1 AJAX網頁信息生成原理

據中國互聯網中心統計,當前中國的網站有百分之四十多都是動態網站,幾乎占據了中國互聯網的半壁江山,而日常人們主要通過搜索引擎來獲取自己感興趣的信息,搜索引擎的核心之一是網絡蜘蛛(Web Spider)。網絡蜘蛛通過給定的起始頁面按照一定的規則提取頁面中的鏈接,直到沒有鏈接,蜘蛛才停止提取[2]。這其中的過程僅僅解析了網頁的源代碼,卻沒有把網頁信息寫入網頁源代碼中,因此爬蟲收集的只是沒有加載動態信息的網頁資源。當用戶瀏覽動態網頁時,首先在瀏覽器的地址欄輸入網頁的URL,向對應的服務器發送請求獲取該URL對應的頁面,當獲取到頁面時,此時并沒有獲取到網頁的信息,瀏覽器的JS(JavaScript)解析器會繼續解析寫在網頁中的JS代碼,作為動態網頁,數據通過頁面中的JS繼續向服務器請求數據庫中的數據,而傳統的網絡蜘蛛并沒有執行這些后續請求,蜘蛛的功能僅相當于瀏覽器的第一個請求網頁的動作,在瀏覽器中通過查看網頁源代碼可以看到一些AJAX信息并沒有顯示在源代碼中,而網頁中能夠顯示信息,正是由于瀏覽器中后續的JS解析。該過程的原理圖如圖1所示。

在該網頁信息生成的過程中,只有當客戶端請求到頁面之后,再通過客戶端中的JS解析器解析網頁中的JS數據請求代碼,才會從數據庫請求數據并寫入頁面。

2 自定規則采集功能設計

根據前面所分析的原理可知,僅單純的使用一個get請求來獲取AJAX頁面中的信息在原理上是不可行的,因為服務器端并不能解析JS代碼,只有在客戶端才能解析,服務器端只能夠將網頁原封不動地返回給客戶端,存在于網頁源代碼中的JS數據請求并沒有運行。作為一套信息采集系統,該系統的全部功能模塊必須都放在服務器環境中,只有通過一個可以完全解析網頁的引擎才能使服務器端解析JS獲取網頁信息。經過摸索和查找,認為JS的開源工具包PhantomJS可以完成該項功能??梢詫hantomJS引擎存放于服務器端,通過服務器端語言來調用,這里使用PHP語言。

2.1 自定規則功能結構的設計

屬于一個網站的所有頁面的結構基本類似,網站與網站之間的結構可以完全不同,也可以類似,但網頁結構幾乎不可能完全一樣,即使存在輕微差別,也會導致一些信息的提取規則完全不同。因此一旦寫死了某一個網站的提取規則,隨著網站的改版,可能其中頁面的結構發生了變化,僅HTML標簽名屬性發生變化就會導致抽取規則的改變,因此用戶自定規則能夠很好地解決問題[3-8]。提取信息的規則寫在JS文件中,除開PhantomJS函數,用戶只需要寫提取網站信息的DOM規則。在前臺設計一個用戶上傳規則和選取規則的功能,服務器端設定一個專門存放規則的文件夾,前臺能夠讀取用戶上傳的規則,從而完成目標頁面信息的提取。自定規則工作原理圖如圖2所示。

用戶寫入核心的DOM規則上傳到規則庫。當用戶需要使用該規則時,前臺可以加載規則庫中的文件,通過選取指定的文件,服務器將文件名傳入PhantomJS引擎中,接收網站的鏈接以目標網頁進行信息提取,返回信息經處理后返回客戶端。

2.2 PhantomJS與PHP通信

服務器中存放一個PhantomJS可執行文件,稱其為PhantomJS引擎,該引擎通過命令窗口運行一個JS為后綴的文件,該文件中寫入一些PhantomJS的接口函數和網頁鏈接以及信息提取規則。作為單純的信息提取,JS文件中的PhantomJS接口函數是固定的,它們可以完成解析和加載網頁,使網頁內部的JS源代碼完全執行。PHP函數庫中存在一個調用可執行文件的函數exec()。利用該函數調用PhantomJS可執行文件,PhantomJS運行用戶自定規則的JS文件,從而進行動態信息的提取。例如exec("chcp 65001 && cd /d f:/phantomJS/phantomjs-2.0.0-windows && phantomjs sample.js {$url}",$arr,$i),該語句表示通過phantomJS執行sample.js文件,傳入頁面的鏈接為$url,返回的結果存入$arr中。Sample.js文件中的代碼如下:

3 結 語

本文提出了一種能夠自定規則提取AJAX網頁信息功能的設計,通過測試能夠成功提取動態AJAX網頁信息,相較于傳統的網絡蜘蛛,自定規則設計可以更好更貼合用戶需求來對指定網站進行信息提取,避免了虛假網站的干擾和重復信息的冗余。相較于傳統的dom信息提取系統,該信息提取功能加入了PhantomJS包,能夠提取傳統dom無法提取的動態信息,功能得到了加強。

參考文獻

[1]張小集,白清源.可自定規則的Ajax網頁信息采集框架的開發[J].電腦開發與應用,2014,27(10):29-31.

[2]翁巖青.網頁抓取策略研究[D].哈爾濱:哈爾濱工程大學,2010.

[3]徐超.基于DOM的網頁凈化方法研究[D].青島:中國石油大學,2009.

[4]于靜.基于頁面主體提取的WEB信息抽取技術研究[D].南京:南京郵電大學,2013.

[5]劉冠軍.Web對象提取檢索系統的設計與實現[D].北京:北京大學,2008.

[6]李猛.基于DOM的web信息抽取的研究與實現[D].大連:大連理工大學,2008.

[7]王桂紅.農產品市場價格web信息分析系統方法研究[D].沈陽:沈陽農業大學,2013.

[8]蘇小魯.基于DOM的HTML網頁正文信息抽取模塊的設計與實現[D].北京:北京郵電大學,2011.

主站蜘蛛池模板: 日本道综合一本久久久88| 综合色区亚洲熟妇在线| 在线观看免费国产| 久久鸭综合久久国产| 在线欧美日韩国产| 成人av专区精品无码国产 | 欧美日韩国产综合视频在线观看 | 视频二区国产精品职场同事| 专干老肥熟女视频网站| 国产综合日韩另类一区二区| 国产在线精品美女观看| 成人av手机在线观看| 亚洲男人的天堂在线观看| 久久综合伊人77777| 欧洲高清无码在线| 这里只有精品国产| 亚洲国产天堂久久综合226114| 中文字幕有乳无码| 国产国产人在线成免费视频狼人色| 亚洲第一在线播放| 欧美五月婷婷| av一区二区三区在线观看| 三上悠亚在线精品二区| 亚洲日韩精品无码专区97| 在线精品亚洲一区二区古装| 日韩天堂视频| 国产毛片片精品天天看视频| 欧美国产日本高清不卡| 国产三级毛片| 毛片免费在线| 精品国产网| 亚洲高清无在码在线无弹窗| 91年精品国产福利线观看久久| 中文字幕佐山爱一区二区免费| 青青热久免费精品视频6| 国产天天射| 国产精品大尺度尺度视频| 国产精品所毛片视频| 久草网视频在线| 伊人久热这里只有精品视频99| 亚洲欧美在线看片AI| 欧美精品成人一区二区在线观看| 97se亚洲综合在线天天| 69精品在线观看| 欧美精品成人一区二区视频一| 日韩在线影院| 精品国产成人av免费| 国产成人毛片| 国产精品一区二区久久精品无码| 午夜毛片免费看| 国产精品无码久久久久久| 丝袜高跟美脚国产1区| 午夜啪啪福利| 亚洲天堂网2014| 97综合久久| 曰韩免费无码AV一区二区| www.91在线播放| 久久精品人人做人人爽97| 国产清纯在线一区二区WWW| 人禽伦免费交视频网页播放| 欧美狠狠干| 亚洲日韩精品伊甸| 国产欧美视频在线观看| 在线免费亚洲无码视频| 午夜精品久久久久久久无码软件 | 福利小视频在线播放| 91午夜福利在线观看精品| 久久99精品国产麻豆宅宅| 精久久久久无码区中文字幕| 韩国福利一区| 2021天堂在线亚洲精品专区| 成人午夜免费视频| 欧美人与牲动交a欧美精品| 日本高清成本人视频一区| 欧美色视频日本| 午夜性刺激在线观看免费| 九九热精品免费视频| 国产99热| 欧美精品成人| 国产真实二区一区在线亚洲 | 亚洲系列中文字幕一区二区| 少妇人妻无码首页|