我想开发一个将在谷歌搜索关键字的刮刀程序。我在启动刮刀程序时遇到问题。 我的问题是: 假设窗口应用程序(c#)有2个文本框和一个按钮控件。第一个文本框有“www.google.com”,第二个文本框包含关键字,例如:
textbox1:www.google.com textbox2:“板球”
我希望代码添加到将在谷歌搜索板球的按钮点击事件。如果有人在c#中有编程想法,那么请帮助我。
最好的问候
答案 0 :(得分:6)
我搜索了我的问题并找到了解决上述问题的方法...... 我们可以为此目的使用谷歌API ...当我们添加对谷歌api的引用时,我们将在我们的程序中添加以下命名空间...........
using Google.API.Search;
在按钮点击事件中编写以下代码
var client = new GwebSearchClient("http://www.google.com");
var results = client.Search("google api for .NET", 100);
foreach (var webResult in results)
{
//Console.WriteLine("{0}, {1}, {2}", webResult.Title, webResult.Url, webResult.Content);
listBox1.Items.Add(webResult.ToString ());
}
测试我的解决方案并发表评论......... thanx everybody
答案 1 :(得分:4)
我同意Paqogomez你似乎没有做太多的工作,但我也明白它可能很难开始。以下是一些示例代码,可以帮助您走上正确的道路。
private void button1_Click(object sender, EventArgs e)
{
string uriString = "http://www.google.com/search";
string keywordString = "Test Keyword";
WebClient webClient = new WebClient();
NameValueCollection nameValueCollection = new NameValueCollection();
nameValueCollection.Add("q", keywordString);
webClient.QueryString.Add(nameValueCollection);
textBox1.Text = webClient.DownloadString(uriString);
}
此代码将在Google上搜索“测试关键字”,并将结果作为字符串返回。
您要问的问题是,Google会将您的结果作为HTML返回,您需要解析。我真的认为您需要对Google API进行一些研究,以及以编程方式从Google请求数据所需的内容。在Google Developers开始搜索。
希望这有助于您开始正确的道路。
答案 2 :(得分:1)
您可以使用 WebClient
类和 DownloadString
方法
用于搜索。使用正则表达式匹配结果字符串中的 url。
例如:
WebClient Web = new WebClient();
string Source=Web.DownloadString("https://www.google.com/search?client=" + textbox2.text);
Regex regex =new Regex(@“ ^http(s)?://([\w-]+.)+[\w-]+(/[\w%&=])?$”);
MatchCollection Collection=regex.Matches(source);
List<string> Urls=new List<string>();
foreach (Match match in Collection)
{
Urls.Add(match.ToString());
}