通过以上的的操作,一个简单的应用程序就完成了,但是在显示方面还不是很完美,而且很多属性和方法都没用到,以及一些参数的用法,在下一篇中会提到这些。通过这些可以用到google的强大功能。
通过C#使用googleAPI (二)
GoogleSearchServices
类
doGoogleSearch
方法
需要进行搜索先建立一个GoogleSearchServices 类的对象,然后调用doGoogleSearch方法取得信息。下面是google提供的对该方法的描述。
public
doGoogleSearch(
string
key
,
string
q
,
int
start
,
int
maxResults
,
bool
filter
,
string
restrict
,
bool
safeSearch
,
string
lr
,
string
ie
,
string
oe)
下面对各个参数进行介绍:
Key:这是由google提供的一个认证用的ID,可以在 http://www.google.com/apis/申请。由于目前是测试阶段,每个ID一天只提供1000次的搜索服务请求。
q:这个就是要搜索的关键字。string类型
start:结果开始的索引数,从0开始。 int 类型
maxresults:返回的结果数的最大值,最大为10。int 类型
filter:用于标识是否对搜索的结果进行过滤,所进行的过滤是对于同一主机上的内容只返回1―2个结果。bool类型
restrict:用于限定搜索的国家或地区,如果为空,表示不限制。string 类型。
safeSearch:使用一个bool值表示是否过滤垃圾信息。
lr:对语言的限制,string类型
。可选代号如下表:
ie:输入所使用的字符编码。这个参数将被忽略,所有的输入都将采用UTF-8。
oe:输出所使用的字符编码。这个参数将被忽略,所有的输出都将采用UTF-8
。
通过对这个方法的各个参数的设定可以是自己的应用程序在搜索方面更加人性化。具体使用时可以通过各种控件来收集这些信息。
=======================================================================很 多时候感觉用www.google.com搜索网站挺麻烦的,查阅MSDN的知识库后用C#写了这个windows应用程序版的 google搜索引擎,主要调用了google开放出来的web service,不过搜索时速度还不是很快,但至少省去了右键[在新窗口中打开]的麻烦,以下是程序的源码,虽然挺长的,不过关键代码并不多,抛砖引玉 吧。
//Form1.cs
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Diagnostics;
namespace WindowsApplication2
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ListBox listBox1;
private String sKey;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
private void InitializeComponent()
{
this.textBox2 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(8, 32);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(240, 21);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "ERP";
//
// button1
//
this.button1.Location = new System.Drawing.Point(264, 32);
this.button1.Name = "button1";
this.button1.TabIndex = 2;
this.button1.Text = "搜索";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label1
//
this.label1.BackColor = System.Drawing.SystemColors.Info;
this.label1.Location = new System.Drawing.Point(136, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(104, 16);
this.label1.TabIndex = 3;
this.label1.Text = "单击此处获得帮助";
this.label1.Click += new System.EventHandler(this.label1_Click);
//
// label2
//
this.label2.Location = new System.Drawing.Point(8, 8);
this.label2.Name = "label2";
this.label2.TabIndex = 4;
this.label2.Text = "请输入关键字: ";
//
// listBox1
//
this.listBox1.HorizontalScrollbar = true;
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(8, 64);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(360, 292);
this.listBox1.TabIndex = 5;
this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
//
// Form1
//
this.AcceptButton = this.button1;
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(376, 365);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox2);
this.Name = "Form1";
this.Text = "Google搜索引擎 V1.0 by
[email protected]";
this.ResumeLayout(false);
}
#endregion
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
try
{
sKey="R1SnlcZQFHIBYlBCYdip3j1ERCvueU2Z";
fewCIPdQFHIhHaO+vWpBTjlblc6ajHKN
googleapi.GoogleSearchService s=new googleapi.GoogleSearchService();
googleapi.GoogleSearchResult r=s.doGoogleSearch(sKey, textBox2.Text,
0, 10, false, "", false, "", "", "");
googleapi.ResultElement[] re=r.resultElements;
this.listBox1.Items.Clear();
for (int i=0;i<re.Length;i++)
{
this.listBox1.Items.Add((object)(re[i].title));
this.listBox1.Items.Add((object)(re[i].URL));
}
}
catch(Exception eee)
{
MessageBox.Show(eee.Message,this.Text );
}
}
private void listBox1_DoubleClick(object sender, System.EventArgs e)
{
try
{
String url;
url=listBox1.Text;
Process p = Process.Start(@url);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}
private void label1_Click(object sender, System.EventArgs e)
{
String s;
s=this.Text + "\n";
s=s+"作者:yzwgh\n";
s=s+"EMail:
[email protected]\n";
s=s+"双击下面的网址可打开相应的链接。";
MessageBox.Show(s,this.Text );
}
}
}