mjking的个人博客分享 http://blog.sciencenet.cn/u/mjking

博文

探索与发现:科学网的“三种”自定义搜索?

已有 3741 次阅读 2012-6-25 10:54 |个人分类:心圣|系统分类:生活其它| 科学网, 百度, 乱码, 自定义搜索, 空白

感谢科学网的及时回复,目前的搜索已经完全正常了!这充分地体现了科学网的效率和精神!

刚才试着使用了一下科学网的搜索功能,结果虽说能够理解,但是依旧出乎了博主的意料——仅有两个页面的搜索是正常的。

总共尝试了包括“首页 │ 新闻 │ 博客 │ 群组 │ 人才 │ 会议 │ 论文 │ 小白鼠”的八个页面的搜索功能。
其中“小白鼠”没有百度的自定义引擎,前七个恰好都是,但是问题就出在这七个中间。
为了找到“令我出乎意料”的原因,博主用简单的关键字“什么”,以及“mjking”,“科学”分别作为下面的测试数据。

测试结果显示居然有三类——乱码、原文和空白页面三种:
首先是“乱码”类,即结果出现奇怪的乱码。
1、从“首页”,“新闻”,“会议”,以及“论文”页面分别搜索关键字“什么”,
结果则是ʲ,原本的“什么”(编码GB2312)居然变为乱码“ô”(编码UTF-8),搜索结果则是关于“0300”的结果
http://www.baidu.com/baidu?word=%CA%B2%C3%B4&ct=2097152&cl=3&si=.sciencenet.cn&ie=utf-8

而从“人才”页面搜索“什么”,只不过搜索结果的url地址多了一个服务器协议www,结果就变为是“抱歉,没有找到与ʲô相关的网页”(说明科学网没有使用到该字符的内容)。
http://www.baidu.com/baidu?word=%CA%B2%C3%B4&ct=2097152&cl=3&si=www.sciencenet.cn&ie=utf-8

先介绍一下搜索结果地址的参数含义(来自网上):
word”:搜索关键字(也可用wd代替),这里的“%CA%B2%C3%B4”就是“什么”的gb2312编码,而“ô”对应的utf-8编码是“%C3%B4”,gb2312编码为“%3F”。
ct”: ct--此值一般是一串数字,可能是搜索请求的验证码;
si”:在限定的域名中搜索,比如想在新浪的站内搜索可使用参数si=sina.com.cn,要使这个参数有效必须结合ct参数一起使用。
ie(Input Encoding)”:查询关键词的编码,缺省设置为简体中文,即ie=gb2312;但是这里都设为了utf-8

以上“乱码”类的地址参数的字符集编码都是“utf-8”。其中出现“0300”,是gb2312编码同样为“%3F”的“Ĭ”的html页面编码“Ĭ”。出现乱码乃是字符集设置错误导致的,或者说是为了国外的学者而“特意”设置的?

第二种是“空白”类,即在“原文”类的各个页面中结果正常,但是在“乱码”类中搜索“科学”时,自动跳转为百度搜索的首页(这肯定是百度的问题),很是不解啊。。
http://www.baidu.com/baidu?word=%BF%C6%D1%A7&ct=2097152&cl=3&si=.sciencenet.cn&ie=utf-8

第三乃是“原文”类,即用英文/汉字关键字时,出现正确的结果。
1、从“博客”搜索关键字“什么”以及其他两个关键字,都显示出正确的结果。
http://www.baidu.com/baidu?word=%CA%B2%C3%B4&ct=2097152&cl=3&si=.sciencenet.cn&ie=gbk

2、从“群组”搜索关键字“什么”以及其他两个关键字,也都显示出正确的结果,但是结果地址有小小的改动。
http://www.baidu.com/baidu?tn=bds&cl=3&ct=2097152&si=bbs.sciencenet.cn&ie=gb2313&word=%CA%B2%C3%B4&searchsubmit=true
为了标示上的美观,将“tn”和“word”参数换个顺序,结果不发生变化。
http://www.baidu.com/baidu?word=%CA%B2%C3%B4&cl=3&ct=2097152&si=bbs.sciencenet.cn&ie=gb2313&tn=bds&searchsubmit=true
这里居然出现了gb2313,而不是gb2312!百度会自动使用gb2312

参数含义(来自网上):
tn:提交搜索请求的来源站点,这是百度与免费软件合作时的利益来源,举例来说我们使用的一些免费浏览器中所提供的百度搜索时,URL地址中都带有tn=内容,tn=后面的内容就是百度联盟的账号。如:Firefox的tn=suvion_dg(tn=suvion_4_dg),傲游的tn=myie2dg,The World的tn=suvion_4_pg,只要你使用了这些带有tn=的搜索,只要点击了其中的广告,提供该软件的浏览器就会从中赚取利益。搜索结果有个例外,当tn=baidulocal时,你可以得到一个无竞价无广告的百度搜索结果.”
searchsubmit”这个没找到,抱歉,而且改成false结果也未有变化,不去深究。

由于字符集分别是“gbk”和“gb2312”,两者对于所测试的三个关键字都有相同的编码,故没有问题,但是存在着字符不同区域,gbk包含gb2312,并且数量远多于后者,故可以用gbk独有的“”测试:
http://www.baidu.com/baidu?word=%E6%94%8D&cl=3&ie=gb2312
上面的会出现乱码“鏀”,而下面的则能够正常显示出搜索结果。
http://www.baidu.com/baidu?word=%E6%94%8D&cl=3&ie=gbk  
http://www.baidu.com/baidu?word=%E6%94%8D&cl=3&ie=utf-8

总结:本文针对在科学网上的搜索功能进行了试用,至于出现的问题进行了简单的总结,并大致描述了其相关“原理”。
建议:先完善页面的搜索代码,如有可能,增加搜索引擎的种类。

总而言之,不先利其器,不欲成大器。博主真心祝愿科学网的发展能够更加辉煌!(本文的时效性越短越好)


https://blog.sciencenet.cn/blog-471583-585606.html

上一篇:一个英文单词与一个名人:关于谷歌翻译的机制的新观点?
收藏 IP: 59.67.92.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 16:11

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部