All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Delphi建立字体形状窗体
GridView中超链接根据字段不同指向不同网页_[Asp.Net教程]
ASP.NET中动态控制RDLC报表_[Asp.Net教程]_0
ASP.NET实现自动返回上次请求页面小技巧_[Asp.Net教程]
黑客经验谈Php后门的隐藏技巧测试报告_php资料_编程技术
ASP.NET自动检测用户名是否注册(利用AJAX技术)_[Asp.Net教程]
PHP多种格式显示日期函数_[PHP教程]
PHP技巧:PHP如何读取COOKIES_[PHP教程]
在.NET中字符串替换的五种方法_.net资料_编程技术
Asp.net下的对象成员数据绑定器实现_[Asp.Net教程]
Reading number is top 10 pictures
Sanya, hainan Haitian party feast promiscuity
The money of more than 100 countries and regions15
Ashlynn Brooke photograph of a group2
Abdominal hit by iron--HangZhou best driver parking save passengers
西方气质的东方美女2
Absolutely shocked. National geographic 50 animal photographys4
Average female college students1
The money of more than 100 countries and regions7
教你22句话
Summer is most suitable for young people to travel in China9
Download software ranking
Unix video tutorial17
天龙八部最新服务端
株洲本地在线棋牌游戏
Tram sex maniac 2 (H) rar bag16
Tram sex maniac 2 (H) rar bag17
Be there or be square
Eclipse 4.2.2 For Win32
Eclipse 4.2.2 For Win64
DreamWeaver8
dreamweaver8中文版
delv published in(发表于) 2013/12/31 6:40:58 Edit(编辑)
搜索引擎页面分析中的,javascript,处理_JavaScript技术_编程技术

搜索引擎页面分析中的,javascript,处理_JavaScript技术_编程技术

搜索引擎页面分析中的 javascript 处理_JavaScript技术_编程技术-你的首页-uuhomepage.com

  在制作搜索引擎的时候、或者做页面分析及数据提取的时候,经常面临页面中存在许多javascript,而页面内容,相当一部分写入到了这些js脚本的命令中,而导致正常的DOM分析失败,无法提取所需的信息。 当然,如果这个页面模板确定,针对这个页面制作信息提取模板也不很难,每个页面人工的分析出需要提取的信息的位置,然后制作模板。可是对于general的网页搜索的话,这就不大现实了。正巧前两天和朋友讨论到这个问题,有些想法。在这里,提供两个思路,供大家参考。 1、做一个简化的 javascript 解释器,执行脚本片段 做一个完整的 javascript 解释器是比较难得,但是做一个简化的 javascript 解释器则很容易。我们不需要那些复杂的库,我们只将基本的 javascript 语法实现,并且将涉及文字输出的函数部分实现就可以了。 这样做的目的并不是要真正的完整执行这个javascript,而是将脚本中的字符串,按照其程序逻辑进行组合,最后输出这个脚本的完整输出。这样自然不全面,肯定由于很多功能没实现,导致输出的字符串和真实的输出不完全一样。但是,如果不出意外,


  在制作搜索引擎的时候、或者做页面分析及数据提取的时候,经常面临页面中存在许多javascript,这些javascript 比较烦人,因为有相当部分页面内容写入到了这些js脚本的命令中,而导致正常的DOM分析看不到这些文字,而使其中的文字数据提取失败。


  当然,如果这个页面模板确定,针对这个特定的页面制作信息提取模板也不很难,每个页面人工的分析出需要提取的信息的位置,然后制作模板。可是对于general的网页搜索的话,这就不大现实了。正巧前两天和朋友讨论到这个问题,有些想法。在这里,提供两个思路,供大家参考。


  1、做一个简化的 javascript 解释器,执行脚本片段


  做一个完整的 javascript 解释器是比较难得,但是做一个简化的 javascript 解释器则很容易。我们不需要那些复杂的库,我们只将基本的 javascript 语法实现,并且将涉及文字输出的函数部分实现就可以了。


  这样做的目的并不是要真正的完整执行这个javascript,而是将脚本中的字符串,按照其程序逻辑进行组合,最后输出这个脚本的完整输出。这样自然不全面,肯定由于很多功能没实现,导致输出的字符串和真实的输出不完全一样。但是,如果不出意外,应该不会产生太多的遗漏。因为所有的字符串输出部分我们都实现了,那么完全可以将这些字符串按照其将要输出的逻辑组合在一起。


  对于根据动态条件做动态的事情的问题,如果这些条件无法确定,比如根据浏览器类型或者什么的。完全可以将两个分支的结果都输出。当然,我们不应该将这两块文字组合,中间应该有我们理解的分割符。


  这样做得好处是高性能。这个解释器可以做得很小巧,由于并非完整执行js,所以性能也较之迅速一些。缺点是由于是简化的解释器,因此和真实的结果会有差异。但是一般来说,信息只会多而不会少,(因为同时输出了不同分支的结果),所以,对于搜索引擎的页面分析来说,差不多是够用了。


  2、用HTML渲染引擎完整的解析页面,最后从显示结果中取数据


  采用Gecko (Firefox) 或者Trident (mshtml.dll) (IE) 这些用于浏览器的 HTML 渲染引擎来对页面进行完整的解析和渲染。最后对这些引擎的解析结果进行分析。


  这样做得好处是和显示结果最接近,因为他们是页面的真实解析结果。但是缺点是性能相对较差,因为是对页面的所有元素的完整解析,所以做了很多与提取文字信息无用的劳动,如果分析大数据量的页面的时候,需要权衡一下。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.