3

我想开发一个将在谷歌中搜索关键字的刮板程序。我在启动我的爬虫程序时遇到问题。我的问题是:假设窗口应用程序(c#)有 2 个文本框和一个按钮控件。第一个文本框有“www.google.com”,第二个文本框包含键,例如:

文本框1:www.google.com 文本框2:“板球”

我希望将代码添加到将在谷歌中搜索板球的按钮单击事件中。如果有人对 C# 有编程想法,请帮助我。

此致

4

3 回答 3

8

我已经用谷歌搜索了我的问题并找到了上述问题的解决方案......我们可以为此目的使用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 ());
        }

测试我的解决方案并发表评论......谢谢大家

于 2013-08-23T00:24:31.037 回答
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 上搜索“测试关键字”并将结果作为字符串返回。

你所问的问题是谷歌会将你的结果作为你需要解析的 HTML 返回。我真的认为您需要对 Google API 以及以编程方式从 Google 请求数据所需的内容进行一些研究。在此处开始搜索Google Developers

希望这可以帮助您开始正确的道路。

于 2013-08-22T21:06:28.903 回答
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());
} 
于 2021-02-13T23:40:31.800 回答