我想开发一个将在谷歌中搜索关键字的刮板程序。我在启动我的爬虫程序时遇到问题。我的问题是:假设窗口应用程序(c#)有 2 个文本框和一个按钮控件。第一个文本框有“www.google.com”,第二个文本框包含键,例如:
文本框1:www.google.com 文本框2:“板球”
我希望将代码添加到将在谷歌中搜索板球的按钮单击事件中。如果有人对 C# 有编程想法,请帮助我。
此致
我已经用谷歌搜索了我的问题并找到了上述问题的解决方案......我们可以为此目的使用google API......当我们添加对google 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 ());
}
测试我的解决方案并发表评论......谢谢大家
我同意 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 上搜索“测试关键字”并将结果作为字符串返回。
你所问的问题是谷歌会将你的结果作为你需要解析的 HTML 返回。我真的认为您需要对 Google API 以及以编程方式从 Google 请求数据所需的内容进行一些研究。在此处开始搜索Google Developers。
希望这可以帮助您开始正确的道路。
您可以使用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());
}