苏苏网赚论坛

 找回密码
 立即注册
查看: 786|回复: 0

让搜索引擎看到

[复制链接]
跳转到指定楼层
楼主
发表于 2018-10-28 14:45:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  引入JavaScript解析的目的,正是数控培训为了解决上述两方面的问题,其结果也就是使搜索引擎可以更为明白的了解用户实际打开该网页时看到的效果。比如有些网站会将用户评论、评分等信息从网页HTML中抽离,利用JavaScript甚至AJAX等方法在页面被打开的时候动态出现,早期的搜索引擎此时能处理到的页面内容就是缺失的,由此会进一步影响对该页面索引价值的判断。
  要引入JavaScript解析,需要考虑本身的设计与实现、解析速度和对系统其它方面影响等因素,本文通过一点儿典型的案例来分析如何设计并实现一套网页JavaScript解析系统,并简要介绍这样的系统对于搜索引擎其它部分的作用和影响。
  一、发现页面链接  平常的来说,页面链接都是以HTML中的A标签形式存在,链接URL标记在href属性中,但实际存在着一点儿网站会选拔更为“动态”的方式,较为常见的方式有两种:一种是动态写入或调整A标签,另一种是在用户点击的时候触发事物改变默认的链接打开方式。1. 动态写入或调整链接标签  抽象的说,网页要实现这样的效果,乃至后文描画的其它效果,与把大象放入冰箱极为类似,分为三步:找到要写入/修改的目标(找到大象),准备好要写入/修改的内容(打开冰箱门),执行写入/修改(把它放,也可能是使用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规范。
热帖推荐
回复

使用道具 举报

广告合作|最大的网赚客中文交流社区!十年老站!

GMT+8, 2024-5-4 00:21 , Processed in 0.093600 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.1 VIP版

© 2012-2022 苏苏网赚论坛 版权所有 | 10年老品牌

快速回复 返回顶部 返回列表