關于搜索引擎頁面分析中的 javascript 處理的2個思路

在制作搜索引擎的時候、或者做頁面分析及數據提取的時候,經常面臨頁面中存在許多JavaScript,這些Javascript 比較煩人,因爲有相當部分頁面內容寫入到了這些js腳本的命令中,而導致正常的DOM分析看不到這些文字,而使其中的文字數據提取失敗。

當然,如果這個頁面模板確定,針對這個特定的頁面制作信息提取模板也不很難,每個頁面人工的分析出需要提取的信息的位置,然後制作模板。可是對于 general的網頁搜索的話,這就不大現實了。正巧前兩天和朋友討論到這個問題,有些想法。在這裏,提供兩個思路,供大家參考。

1、做一個簡化的 javascript 解釋器,執行腳本片段

做一個完整的 javascript 解釋器是比較難得,但是做一個簡化的 javascript 解釋器則很容易。我們不需要那些複雜的庫,我們只將基本的 javascript 語法實現,並且將涉及文字輸出的函數部分實現就可以了。

這樣做的目的並不是要真正的完整執行這個javascript,而是將腳本中的字符串,按照其程序邏輯進行組合,最後輸出這個腳本的完整輸出。這樣自然不全面,肯定由于很多功能沒實現,導致輸出的字符串和真實的輸出不完全一樣。但是,如果不出意外,應該不會産生太多的遺漏。因爲所有的字符串輸出部分我們都實現了,那麽完全可以將這些字符串按照其將要輸出的邏輯組合在一起。

對于根據動態條件做動態的事情的問題,如果這些條件無法確定,比如根據浏覽器類型或者什麽的。完全可以將兩個分支的結果都輸出。當然,我們不應該將這兩塊文字組合,中間應該有我們理解的分割符。

這樣做得好處是高性能。這個解釋器可以做得很小巧,由于並非完整執行js,所以性能也較之迅速一些。缺點是由于是簡化的解釋器,因此和真實的結果會有差異。但是一般來說,信息只會多而不會少,(因爲同時輸出了不同分支的結果),所以,對于搜索引擎的頁面分析來說,差不多是夠用了。

2、用HTML渲染引擎完整的解析頁面,最後從顯示結果中取數據。

采用Gecko (Firefox) 或者Trident (mshtml.dll) (IE) 這些用于浏覽器的 HTML 渲染引擎來對頁面進行完整的解析和渲染。最後對這些引擎的解析結果進行分析。

這樣做得好處是和顯示結果最接近,因爲他們是頁面的真實解析結果。但是缺點是性能相對較差,因爲是對頁面的所有元素的完整解析,所以做了很多與提取文字信息無用的勞動,如果分析大數據量的頁面的時候,需要權衡一下

關于搜索引擎頁面分析中的 javascript 處理的2個思路
在制作搜索引擎的時候、或者做頁面分析及數據提取的時候,經常面臨頁面中存在許多javascript,這些javascript 比較煩人,因爲有相當部分頁面內容寫入到了這些js腳本的命令中,而導致正常的DOM分析看不到這些文字,而...查看完整版>>關于搜索引擎頁面分析中的 javascript 處理的2個思路
 
搜索引擎原理與優化思路分析
  搜索引擎的基本組成和及其功能  • 一 個 搜 索引擎程序主要由搜索器、索引器.檢索器和用戶接口等四個部分組成,主要存儲設備由頁面存儲器和存儲桶兩部分組成。  • 搜索器:爬蟲 抓取 壓縮 存儲庫 ...查看完整版>>搜索引擎原理與優化思路分析
 
實踐分析:關于搜索引擎高級指令的解讀
實踐分析:關于搜索引擎高級指令的解讀
  搜索引擎是站長以及SEOer再熟悉不過的了,每天在上面查收錄看反鏈都會成爲一種習慣。然而你真正了解搜索引擎嗎?除了一般的“site、domain”命令外你還了解哪些呢?而作爲一名合格的SEOer,單單了解僅此...查看完整版>>實踐分析:關于搜索引擎高級指令的解讀
 
關于影視站點程序與思路一點點小分析
  當初開影視站的想法其實很簡單,就是想要有一個自己的電影站,能夠提供給自己的周邊同學以及朋友能夠有一個自己看電影的地方,建站半年以來,對影視站點小有心得,特發此文,大家一起探討探討。  首先說說程序...查看完整版>>關于影視站點程序與思路一點點小分析
 
關于IIS5下不支持ASP的故障處理分析
一、現象描述:本地運行asp文件,IE提示:Server Application Error The server has encountered an error while loading an application during the processing of your request. Please refer to the event log fo...查看完整版>>關于IIS5下不支持ASP的故障處理分析
 
自由添加菜單,類似易趣的管理頁面中的那些小菜單.javascript實現,可跨多種浏覽器
類似易趣裏"我的易趣"中的那些小的下拉菜單.用javascirpt 實現,支持多浏覽器,(在IE6和FireFox中調試成功)以下是menu.js中的代碼var aryMenu=new Array();var vView;var vHide;var menudiv;if(window.navigator.appNa...查看完整版>>自由添加菜單,類似易趣的管理頁面中的那些小菜單.javascript實現,可跨多種浏覽器
 
自由添加菜單,類似易趣的管理頁面中的那些小菜單.javascript實現,可跨多種浏覽器
類似易趣裏"我的易趣"中的那些小的下拉菜單.用javascirpt 實現,支持多浏覽器,(在IE6和FireFox中調試成功)以下是menu.js中的代碼var aryMenu=new Array();var vView;var vHide;var menudiv;if(window.navigator.appNa...查看完整版>>自由添加菜單,類似易趣的管理頁面中的那些小菜單.javascript實現,可跨多種浏覽器
 
頁面中的圖片超過規定的大小就按原圖片大小縮小,不超過的就按原樣的JS處理方案
頁面中的圖片超過規定的大小就按原圖片大小縮小,不超過的就按原樣的JS處理方案 頁面中的圖片超過規定的大小就按原圖片大小縮小,不超過的就按原樣的JS處理方案 我們經常會遇到在頁面中的圖片按照我們自...查看完整版>>頁面中的圖片超過規定的大小就按原圖片大小縮小,不超過的就按原樣的JS處理方案
 
頁面中的圖片超過規定的大小就按原圖片大小縮小,不超過的就按原樣的JS處理方案
我們經常會遇到在頁面中的圖片按照我們自己的大小來顯示,這樣可以讓頁面看起來更規範一些。 比如我們要在頁面種顯示130×160的圖片,相當于我們將圖片放入這樣的一個相框那,超過的就縮放到這個框的大小,小的...查看完整版>>頁面中的圖片超過規定的大小就按原圖片大小縮小,不超過的就按原樣的JS處理方案
 
 
回到王朝網路移動版首頁