我思故我在

歌德说,人的一辈子其实只能做一件事,做了,就要扎扎实实地把它做好。我也只能通过一种行业来认定我自己的人生价值。我选择了写程序,我希望我能写好。
随笔 - 55, 评论 - 457, 引用 - 159

导航

工具

每月存档

广告



访客

将Google整合到你的网站

这已经不是什么新话题,但是对于我是刚刚接触,所以拿出与人分享,如果你和我一样以前没有涉及过这方面的知识,希望它能起到抛砖引玉的作用。

可以说google绝对是我的良师益友,所以我比较关注他的技术,在建设个人网站过程中,需要为站点添加搜索引擎,我觉得没有搜索功能的网站就象缺少了双腿。

我对于搜索知识还很贫乏

一般可以使用fso对站点内物理文件进行处理,来找到复合条件的内容。对于保存于数据库内的文章,可以使用数据库引擎搜索数据库,找到满足条件的数据。

但是其实还有一个更简单方便的办法,就是使用google的强大搜索引擎,你可以用它实现本站内搜索,互联网搜索,大部分的做法是在本站添加一个入口,然后转到google网站。

我现在说的是使用google WEB API,完成在本站内搜索,因为Google WEB API符合SOAPWSDL标准,它使用XML的方式返回结果,因此你可以自定义返回的结果显示方式,也可以方便的存储这些数据。

因为我的网站是asp的,所以我分别用aspVB实现web serviceDesktop application的演示。

Google WEB API主要提供三种服务:

SearchCacheSpelling

这里只谈使用SOAP标准调用搜索功能。提示使用doGoogleSearch API非常容易,只要提交一个包含特定内容的XML文件即可,在google WEB API SDK中都有相应的模板.

doGoogleSearch.xml内容

<?xml version='1.0' encoding='UTF-8'?>

 

<SOAP-ENV:Envelope xmlns困惑的笑脸OAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

  <SOAP-ENV:Body>

    <ns1咧嘴笑脸oGoogleSearch xmlns:ns1="urn:GoogleSearch"

         SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

      <key xsi:type="xsd困惑的笑脸tring">00000000000000000000000000000000</key>

      <q xsi:type="xsd困惑的笑脸tring">shrdlu winograd maclisp teletype</q>

      <start xsi:type="xsd:int">0</start>

      <maxResults xsi:type="xsd:int">10</maxResults>

      <filter xsi:type="xsd:boolean">true</filter>

      <restrict xsi:type="xsd困惑的笑脸tring"></restrict>

      <safeSearch xsi:type="xsd:boolean">false</safeSearch>

      <lr xsi:type="xsd困惑的笑脸tring"></lr>

      <ie xsi:type="xsd困惑的笑脸tring">latin1</ie>

      <oe xsi:type="xsd困惑的笑脸tring">latin1</oe>

    </ns1咧嘴笑脸oGoogleSearch>

  </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

下面简要解释每个节点的含义:

key         使用者的license keygoogle可以通过它了解使用情况,每个key每天最多查询1000

q    要查找的字符串

start              结果记录中的起始位置,因为多页显示,用它来确定当前页显示的记录范围

maxResults       每页显示的记录数,现在最大值是10

filter              布尔值,过录结果中重复记录的开关。 特定国家和标题开关

restrict   约束搜索的范围

safeSearch       布尔值,是否过滤到成人信息

lr            搜索特定语言范围,比如“搜索所有简体中文网页”:lang_zh-CN

ieoe是输入输出的语言编码,这个被忽略,默认是UTF-8格式

以上这些就是一次提交所需要的参数。

设定好参数就可以发送到GoogleSOAP RPC Router

之后google会将搜索结果以xml文件的形式返回给调用者。调用者主要相应操作这个xml文件,就得到自己想要的数据。

摘录一段:

下面看一个实际的返回结果例子:

<?xml version='1.0' encoding='UTF-8'?>

<SOAP-ENV:Envelope xmlns困惑的笑脸OAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<SOAP-ENV:Body>

<ns1咧嘴笑脸oGoogleSearchResponse xmlns:ns1="urn:GoogleSearch" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<return xsi:type="ns1:GoogleSearchResult">

<directoryCategories xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Array" ns2:arrayType="ns1咧嘴笑脸irectoryCategory[0]">

</directoryCategories>

<documentFiltering xsi:type="xsd:boolean">true</documentFiltering>

<endIndex xsi:type="xsd:int">10</endIndex>

<estimateIsExact xsi:type="xsd:boolean">false</estimateIsExact>

<estimatedTotalResultsCount xsi:type="xsd:int">31</estimatedTotalResultsCount>

<resultElements xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:Array" ns3:arrayType="ns1:ResultElement[10]">

<item xsi:type="ns1:ResultElement">

<URL xsi:type="xsd困惑的笑脸tring">http://msdn.microsoft.com/library/en-us/dncenet/html/choose_api.asp</URL>

<cachedSize xsi:type="xsd困惑的笑脸tring">54k</cachedSize>

<directoryCategory xsi:type="ns1咧嘴笑脸irectoryCategory">

<fullViewableName xsi:type="xsd困惑的笑脸tring"></fullViewableName>

<specialEncoding xsi:type="xsd困惑的笑脸tring"></specialEncoding>

</directoryCategory>

<directoryTitle xsi:type="xsd困惑的笑脸tring"></directoryTitle>

<hostName xsi:type="xsd困惑的笑脸tring"></hostName>

<relatedInformationPresent xsi:type="xsd:boolean">true</relatedInformationPresent>

<snippet xsi:type="xsd困惑的笑脸tring">Choosing a Windows Embedded &lt;b&gt;API&lt;/b&gt;: Win32 vs. the .NET Compact Framework. Written by: Paul Yao, Windows&lt;br&gt; Embedded MVP The Paul Yao Company. &lt;b&gt;...&lt;/b&gt; This article focuses on two of these APIs—Win32 and the .NET Compact&lt;br&gt; Framework —to provide details on selecting an &lt;b&gt;API&lt;/b&gt; for specific programming tasks. &lt;b&gt;...&lt;/b&gt;  </snippet>

<summary xsi:type="xsd困惑的笑脸tring"></summary>

<title xsi:type="xsd困惑的笑脸tring">Choosing a Windows Embedded &lt;b&gt;API&lt;/b&gt;: Win32 vs. the .NET Compact &lt;b&gt;...&lt;/b&gt;</title>

</item>

 

</resultElements>

<searchComments xsi:type="xsd困惑的笑脸tring"></searchComments>

<searchQuery xsi:type="xsd困惑的笑脸tring">google site:www.blanksoft.com</searchQuery>

<searchTime xsi:type="xsd咧嘴笑脸ouble">0.177621</searchTime>

<searchTips xsi:type="xsd困惑的笑脸tring"></searchTips>

<startIndex xsi:type="xsd:int">1</startIndex>

</return>

</ns1咧嘴笑脸oGoogleSearchResponse>

 

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

完整可以看:http://www.blanksoft.com/gosearch/rettext.txt

我只保留了一个item信息(应该是maxResults个或者少于maxResults)。

下面结束主要的节点含义:

return节

estimatedTotalResultsCount:收到的总记录数。

searchComments:显示一些注释信息,比如“Google 会搜索所有的查询字词,您不必添加 "AND" 运算符

searchQuery:查询内容,一般等于你传入的查询字符串,但是并不总是一样。

SearchTime:返回服务器搜索花费的时间

SearchTips:显示一些小技巧

StartIndex:当前返回第一条记录的索引号

EndIndex当前返回最后一条记录的索引号

Item::返回的结果集合

 

Item节:

URL:页面地址

CachedSize:在Googlecache的页面大小

Snippet:内容摘录

Title:页面标题

大致常用的差不多就是这么多,ODP内容暂时省略。

查看asp的效果,可以访问:

http://www.blanksoft.com/gosearch/googlesearch.asp

我是仿造google的样子设计,当然可以随便定义成自己喜欢的样子

附加,Google Web APIs WSDL 描述文件

posted on 2004-05-14 16:38:00 by shannon  评论(17) 阅读(5919)

使用绝对路径代替相对路径提高网站安全性

我的网站,论坛,blog都是使用access数据库,刚开始做网站所以安全问题考虑不足。但是用户反映在不正确的路径非法调用数据库配置文件,会暴露数据库名称。而且我也发现了这个问题,不仅仅是blog还有我网站,看了网上一些文章介绍可以将mdb扩展名改为asp,阻止直接下载,但是不能阻止flashget(阻止flashget可以文件名加“#“)或者用浏览器直接打开文件内容。

大多数做法(我看到的)好像是使用on error resume next跳过错误,继续运行,但我觉得还是有潜在问

题。我的论坛系统(WWF)采取的措施是将配置文件放在根目录。下面是我采取的办法(还没有通过实践检验)

我发现造成这个漏洞的大部分原因是使用相对路径造成的,就是使用Server.MapPath指定路径,它还有另外一个不方便之处,就是不能随意在任何位置include这个文件。因此我现在就绕过这种做法而是使用网站绝对路径来指定文件位置。这样可以解决我上面分析两点:

具体步骤是使用

Request.ServerVariables("APPL_PHYSICAL_PATH")得到根目录物理路径然后加上子文件夹的位置,文件名。

但是不能保证100%可靠(我认为不会得到100%的安全)但是我觉得还是有所提高的。

posted on 2004-05-11 09:22:00 by shannon  评论(25) 阅读(13293)

blogx程序又一次更新

五一期间过的很艰苦,哪里没去,蹲在窝里吃跑面,睡眠倒是补回不少。

趁此时间,对我的网站,blog程序都做了些修改,网站升级了一下,界面变化不大,现在内部的格式控制统一由css控制,本来想加几个flash但是flash水平还太低。对于blogx程序的更新介绍详细内容及下载链接(包括英文原版)、屏幕截图可以访问http://www.blanksoft.com/blogx.asp,也可以访问http://www.blanksoft.com/blogx/Default.asp查看实际效果

更新内容:

  • 所有编辑功能采用所见及所得的编辑模式
  • 增加日志搜索功能
  • 采用无组件上传方式增加图片上传功能
  • 增加在线编辑“其他链接”功能,这个功能可能常用
  • 完善邮件列表功能(未经过测试,我的工作环境不能上网)
  • 增加几款主题(严格说是一种Dream Place)
  • 增加访问统计功能
  • 刚刚测试了文件上传和邮件列表功能,可以正常使用,这样就可以通过邮件列表发布最新消息给你的用户了。

     

    posted on 2004-05-08 11:33:00 by shannon  评论(18) 阅读(3813)

    Powered by: Joycode MVC Blogger System