欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 771

点击:12035[回复顶层] [树状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 769
dp2OPAC最近改进,以及SEO

作者: xietao


dp2OPAC近期进行了一系列改进,其中比较重要的是SEO(搜索引擎优化)方面的改进。

最新版本已经上传到服务器,各用户单位的系统管理员不妨下载后升级安装一试。

下面介绍一下SEO方面的改进。

原来的 browse.aspx 页面,也就是浏览页面,无论左边的树状目录部分和右边的记录内容显示部分,都是采用 ASP.NET 的事件驱动方式来实现的各种页面锚点,即借助javascript实现的功能,而不是纯粹的HTML <a>锚点。(注:也有可能实现为<a>的形式,但href为"javascript:xxxx"这样的形态,不是纯粹的<a>锚点)

我们知道,这样的页面形式,一般搜索引擎的网络爬虫是难以处理的,也就基本上不会去处理了。从技术上来说,除非网络爬虫采用了完全模拟普通浏览器的运行方式,并主动去触发这些javascript功能 --- 触发前网络爬虫也不能从形态上预测这些动作会产生什么效果(到底是创建一条评注呢还是跳转到另外一个页面?),因而这也正是网络爬虫不去触发的一个原因。而人类用户在使用浏览器的时候,是具有智能的,对触发后反馈的页面能从语义上进行理解,这恰恰是网络爬虫不具备的能力。联想到另外一个领域,就是程序自动测试浏览器页面的领域,这是个对于软件开发非常有意义的领域,但基于和前述相同的难题,很多时候还只能靠人工进行测试。

毕竟,一个浏览器页面,除了考虑为人类浏览器用户服务外,还要考虑到为网络爬虫服务,对它们也要“友好”。因为这是增强网站透明性,让网站内容能被搜索引擎顺利收录,从而让网站更好地被外界搜索访问,也就是常说的SEO的必要。

在 dp2OPAC 的若干类页面中,检索页面不太可能被搜索引擎直接利用。因为网络爬虫第一还没有智能到可以在文本框中输入一些检索词并且等待检索结果页面出来后去收录它们;第二即便能做到了前一点但网络爬虫也没有智能到能决定有效输入什么检索词来获取最多的网站内信息。因而,这类页面对于搜索引擎来说成为一个“暗黑世界”不可访问,是个现实的难题,是个现状也只好就接受了。

但 dp2OPAC 具有 browse.aspx 页面,幸好。browse.aspx 页面的功能本来就是为了给什么都不清楚的用户提供一种顺次浏览的设施,遍历网站内的所有书目记录信息。如果这个页面做得好,是应该能覆盖全部记录范围的,只要访问者有耐心一页一页翻看下去,终归能看完全部信息。顺次看完所有页面 -- 这在人来说难以做到(很多图书馆都有几十万几百万册藏书),但对于网络爬虫却是它们的看家本领,它们不知道累,而且速度极快。

但可惜 dp2OPAC 的先前版本具有上述 javascript 锚点的问题,把这个原本该有的功能给取消了,网络爬虫到了这里,找不到任何一个它习惯的纯粹<a>锚点,无计可施,等于网站内全部书目记录都看不到了。目前最新的版本解决了这个问题,把 browse.aspx 页面内的,对网络爬虫意义重大的锚点,都修改成了纯粹的<a>锚点。

具体来说,就是左边树状目录的每个节点,都是纯粹的<a>锚点,每个锚点指向一个具体类目的浏览页面;右边书目详细信息部分,也提供了纯粹的<a>锚点,每个锚点指向一条书目记录的book.aspx页面。

这里还不得不谈一谈详细信息部分的结构。由于先前的版本已经普遍采用了Ajax技术,实际上浏览页面初次到达浏览器的时候,书目内容部分不过是一个记录路径字符串,等待后面javascript代码从服务器再次获取到书目记录的具体内容后填充到页面内容中。也就是说网络爬虫在这里实际上是看不到书目记录的正文部分的。那这么说来岂不是搜索引擎还是没法收录和索引 dp2OPAC 的书目记录内容了?

别着急。因为浏览页面中通常每页十个书目记录的显示结构中,每一个书目记录显示区域的右上角是一个该记录的专属锚点,如果访问者去点一下,会发现到达book.aspx 页面,那里唯一显示了这条书目记录的信息。而且这个锚点并不是用Ajax后期在前端构造出来的,而是初次到达的HTML页面本来就有的。这样,网络爬虫会继续“爬”进去,为书目记录逐一收录内容和建立索引。

其实反过来想,每页十个书目记录的浏览页面,本身不适合让网络爬虫用来建立书目记录的索引,因为这是十条记录的公共页面,我相信现在的网络爬虫和分析模块还没有那么高的能力把每条记录的边界搞清楚。可能后面我们用上 HTML5 以后会有点希望,不过那是未来的事儿了。
 
此外,因为每10条1页的分页的缘故,新版本也把涉及到分页的锚点全部修改为纯粹的<a>锚点了。

为了服务好网络爬虫,book.aspx 页面故意没有采用 Ajax 技术来延迟获取书目内容部分。因为一般来说 Ajax 技术是网络爬虫的敌人了。还有另外一个原因,我们后面会讲到,也使得不能采用 Ajax 技术了。不过因为每一个 book.aspx 页面只是显示一条书目记录的信息,Ajax 有没有就基本无所谓了,对页面响应速度的影响不大。

到这里,我们小结一下:新版本采用了对网络爬虫友好的页面方式和技术,让整个网站的书目记录显示页面能被网络爬虫全部有效访问到。

说到 SEO,还不得不说到在HTML <head>元素中的<meta>元素,里面可以放DC元数据,这可是图书馆界的热门概念,精心制作的MARC书目数据本来是很擅长这个的。新版本在 book.aspx 页面中,会在<meta>元素中自动填写 DC 元数据字段信息。注意升级 dp2OPAC 的时候,请一并升级 dp2Library 模块,并且注意刷新每个书目库的 opac_biblio.fltx 配置文件,这个文件是定义书目详细页面内容部分的发生规则的,最新的这个配置文件里面增添了抽取 DC 元数据字段的功能。只有这些条件配合好,dp2OPAC 的 book.aspx 页面才会有 DC元 数据字段内容出现。

我们知道,搜索引擎是偏爱具有<meta>元素的网站页面的,这种结构化的数据让搜索引擎省去很多猜测的烦恼,能实现一些精准的检索功能;同时具有这种结构信息,也暗示网站页面的数据质量更高。

关于以上的改进效果,各位可以观看 http://www.hongniba.com.cn/dp2OPAC 里面的浏览页面,注意研究一下页面的HTML代码。



发表时间: 2012-12-08 22:48:08
最后修改时间: 2012-12-09 00:00:10



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 770
登录页面的改进

作者: xietao


上面说到了SEO方面的一些增强。

除了上面的重要方面,另外一个小小的细节也不可忽视:

原来版本的login.aspx页面,作为整个dp2OPAC网站的一个入口页面,可谓是一夫当关万夫莫开,谁都要从这里进去,才能看到其他的页面。就算是访客身份,要观看这个网站,也需要在login.aspx页面通过访客登录锚点才能进入。

虽然有少数的页面,如果直接在浏览器中输入URL然后可以直接访问而不经过login.aspx页面(这时候自然采用访客身份进入),但搜索引擎的网络爬虫不知道这些秘密通道,如果系统管理员在外界进入的URL上不提供入口,搜索引擎永远不知道有哪些页面存在。

可惜,上面所说的“访客登录”这一个重要的网络爬虫进入通道,以前版本也使用了javascript的锚点,那么网络爬虫就进不去了。等于,整个网站都无法被网络爬虫感知到。

所以这次新版本,对login.aspx页面进行了改造,把这个至关重要的“访客登录”锚点修改成了纯粹的<a>锚点,以便网络爬虫从此进入。当然,人类访客也是从此进入的。

有的图书馆单位可能至今还没有给自己的 dp2OPAC 配置显示 browse.aspx 页面,这次需要引起注意了,如果必要请及时咨询我们,把这个 browse.aspx 页面设置好显示出来,不但普通读者受益,而且搜索引擎也能收录贵馆的书目网页,这是好事一桩。


发表时间: 2012-12-08 23:37:07
最后修改时间: 2012-12-09 00:01:31



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 3 楼
文章id: 771
其他改进

作者: xietao


这次的新版本,还有下列改进和增强:

1) 增加了一个 statischart.aspx 页面,显示统计图。我们鼓励图书馆对访客和读者开放这个功能,如果必要可以设置限制显示部分统计指标。

2) 几乎所有页面的css样式进行了美化。依据的是我们一贯的简约朴素的原则,美化过程力图不要影响到阅读清晰这个首要功能的实现。

3) 总分馆模式下,每个分馆可以设立独立的标题图像和颜色风格。例子可看  http://www.hongniba.com.cn/dp2OPAC ,注意用右上角的图书馆名列表可以切换到分馆状态。在分馆状态下,详细页面观察到的册信息,只显示这个分馆的册,屏蔽了其他分馆的册信息显示。

4) browse.aspx 页面中,左边的树状面板,在页面卷滚的时候,可以维持在始终显示的位置,以便于对照观看。


发表时间: 2012-12-08 23:43:55
最后修改时间: 2012-12-09 00:02:40



页 1 / 1
 

在线用户
(无) 
当前栏目在线用户数 0, 总在线用户数 0