如何让搜索引擎看到更真实的网页
引入JavaScript解析的目标,恰是为调查决上述两方面的问题,其后果也就是使查找引擎可以更为明晰的调查用户实践翻开该网页时看到的结果。比方有些网站会将用户谈论、评分等信息从网页HTML中抽离,应用JavaScript甚至AJAX等办法在页面被翻开的时分动态显示出来,早期的查找引擎此时能处置到的页面内容就是缺掉的,由此会进一步影响对该页面索引价值的判别。
要引入JavaScript解析,需求思索自身的设计与完成、解析速度和对系统其它方面影响等要素,本文经过一些典型的案例来剖析若何设计并完成一套网页JavaScript解析系统,并扼要引见如许的系统关于查找引擎其它局部的效果和影响。
一、发现页面链接
普通来说,页面链接都是以HTML中的A标签方式存在,链接URL标志在href属性中,但实践存在着一些网站会选择更为“动态”的方法,较为经常见的方法有两种:一种是动态写入或调整A标签,另一种是在用户点击的时分触发事情改动默许的链接翻开方法。
1. 动态写入或调整链接标签
抽象的说,网页要完成如许的结果,甚至后文描绘的其它结果,与把大象放入冰箱极为相似,分为三步:找到要写入/修正的目的(找到大象),预备好要写入/修正的内容(翻开冰箱门),执行写入/修正(把它放进去)。
这三步操作映射到JavaScript上,就是先后挪用三组规范的阅读器功用函数:页面元素定位、数据预备以及页面修正。那么,JavaScript解析的任务就是相同供应出如许的函数,跟着被站长的JavaScript代码挪用天然的发现响应的内容和行为。
剖析至此,所需完成的函数也就根本确定了,个中较为简略的包罗:
document.getElementById // 定位
document.getElementsByTagName // 定位
document.getElementsByClassName // 定位
node.[firstChild/nextSibling/previousSibling/parentNode] // 定位
document.[createElement/createTextNode] // 创立链接
node.[appendChild/insertBefore/innerHTML=?] // 写入内容
element.getAttribute, element.setAttribute // 设置属性
element.href = ? // 设置属性
至于要写入的内容,能够是以数组等方式保管在JavaScript种,也能够是运用AJAX动态加载。前者属于JavaScript言语的内置功用,此处不再复述;后者是一个独自的话题,会在后文专门评论。
2. 点击时触发事情改动默许的链接翻开方法
页面如许做的缘由纷歧,有的是为了埋没链接,有的是为了完成弹出窗口,有的则是为了顺序拼接URL,还有的是做反省看能否应该翻开链接等等。但一切这些缘由都对应着相同的完成办法:添加click事情。
添加click事情的办法有三种:
将A标签的href属性设置为“javascript:func(…)”的方式
设置A标签的onclick属性,设置为onclick=”js_code” 的方式
挪用事情绑定函数,如my_link_node.addEventListener(‘click’, func, false)
支撑这三种办法自身是较为简略的,需求留意的当地在于若何触发如许的click事情,以及若何在触发之后截获目标URL。
关于触发事情而言,起首需求搜集到一切能够的click事情,然后再顺次触发。但关于每一个要触发的click而言,实践触发之前必需先反省其能否还存在,这是因为在其之前的click事情很能够曾经把当时这个click删除失落了。
要做到截获URL,起首要完成相关的页面跳转函数,既location.href = ?,window.open等。然后经过设置一系列标记,将本次点击和页面跳转干系起来,如斯也就获得了目的URL。
二、动态页面内容
页面动态内容是一种提拔页面加载速度、加强网站技能灵敏性的伎俩,可以将那些会改动的内容(如谈论、评分等)抽离,使页面分为静态和动态两局部:静态内容可以运用缓存等办法加速页面显示速度、降低网站流量;动态内容则有花样简略好生成的优势,还也能节流流量。
另一方面,动态内容也是加载告白和内容作弊的主要办法,最经常见的就是写入iframe,这关于早期查找引擎而言有极大的荫蔽性。
在技能条理上,动态页面内容所需求的任务与上一节“动态写入或调整A标签”在很大水平上是一样的,这里需求添加的是经典的“document.write”办法。
该办法是最早的JavaScript功用之一,用于向页面直接写入一段HTML代码,至今仍在普遍运用。关于该办法,早期的查找引擎都有所支撑,但办法根本限于字符匹配,仅能支撑最直接的写入一个JavaScript字符串的方法,关于略微复杂的文本拼接显得力不从心。但关于JavaScript解析而言,这段代码毕竟是要契合言语标准的,因而就能做到完好支撑,处置文本拼接、前提判别和混杂代码等各类状况。
这里还需求评论的一点是嵌套的document.write,也就是经过document.write写入一个SCRIPT标签,该标签内部是另一段document.write。这类问题在跳转作弊页面中习以为常,对其支撑就不只需求JavaScript解析,还需求HTML解析器可以支撑处置嵌套的HTML写入功用,这里就不加以剖析了。
经过上述办法,无论是网页的主体信息,照样告白或其它辅佐信息,都邑被表露出来,然后更好的了解站长意图。
三、网页跳转
网页跳转在有些状况下是到达页面结果的需要选择,但相同会用于作弊。在技能上,多以下面两种方法呈现:
直接挪用页面跳转函数
针对查找引擎的UA、referer等挪用页面跳转函数
这里要完成辨认,最中心的就是完成页面跳转函数:location对象。因为这是技能上独一的JavaScript跳转函数,所以无论页面的JavaScript若何撰写若何混杂,最终都邑挪用该函数。因而,虽然分歧页面的跳转代码看上去八门五花,但辨认出来倒是简略的。
四、关于AJAX
AJAX是极为经常见的网页技能,基本上说就是在网页显示时期,动态的从互联网上获取一段数据(能够是HTML也能够是其它),经由处置后加以显示。
关于该技能,基本的任务并不在于XMLHttpRequest对象的完成,而是在于对查找引擎爬虫架构的影响。众所周知,爬虫抓取页面,遍历其链接,再顺次抓取的方式设计的,其任务首要集中在调剂和节制抓取压力上,抓取器自身较为简略,凡间不具有抓取后即时执行JavaScript并抓取AJAX数据的才能,因而需求技能晋级方可支撑AJAX。
对抓取器的剖析超出了本文的局限,有兴致的读者可以检查其它相关文献。
总结
经过前面的案例剖析,我们总结出了完成JavaScript解析所需求的根本任务,此外再添加必然的根底性建立就能组成一套较为完好的系统了。这里我们再次整顿一下,将其分为三个局部:
1. 在HTML解析器中嵌入JavaScript言语引擎,言语引擎可以选择V8、SpiderMonkey等成熟的开源方案。
2. 完成所需的功用函数,详细可参考W3C的相关HTML和DOM标准。
3. 作为一个直接推论,需求收录所谓的.js文件,这是JavaScript解析所需求“解析”的源代码。
本文中引见的功用仅是一局部较为经常见的JavaScript功用,要让搜素引擎真正看到实践的页面还需求进一步完成其它需求的功用,此外还需求共同对HTML、CSS、图片等资本的支撑。
最终,关于但愿运用JavaScript的站长来说,本文给出如下建议:
1. 不要运用过于复杂的JavaScript技能,这晦气于查找引擎的收录
2. 不要阻止对.js文件的收录,不然会限制JavaScript解析的才能
3. 合理的划分站点的静态局部和动态局部
- 1网站制作绝对不可以犯的编程错误2
- 2网站制作绝对不可以犯的编程错误
- 3Windows Azure 网站上运行 CakePHP
- 4评估企业站做的好坏的方法
- 5PHP 5中垃圾回收算法的演化
- 6企业为什么偏爱要求资深的网站维护单位做网站呢?
- 7企业网站的优化现状
- 8优质的网站建设方案对网站制作的重要性
- 9企业为什么偏爱要专门的网站建设企业做官网呢?
- 10PHP Google的translate API代码
- 11电子商务网站的下一个掘金点-----O2O
- 12房地产行业微信营销方案3
- 13网站建设和营销带来的经济效益
- 14久途教你怎么样经营自己的网站
- 15最全Facebook图片存储架构技术
- 16网站关键字的确定
- 17PHP性能优化大全
- 18全站内置SEO优化机制
- 19 数据库操作基类
- 20医疗设备一体化业务管理系统解决方案
- 21企业为什么偏爱需要资深的网站设计企业做官方网站呢?
- 22有关MySQL分页
- 23当前电子商务的主流贸易形态
- 24HTML5的呈现代表着新一波的Web顺序办法
- 25租赁网站功能介绍
- 26HTTPS(安全HTTP)和SSL/TLS(安全套接层/传输层安全)
- 27O2O已经成为电子商务网站的下一个掘金点
- 28如何让搜索引擎看到更真实的网页
- 29Linux系统平安Shell剧本用于Linux系统的平安初始化剧本
- 30久途教你如何宣传自己的网站
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼