google-search-results-dotnet 1.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package google-search-results-dotnet --version 1.3.0
NuGet\Install-Package google-search-results-dotnet -Version 1.3.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="google-search-results-dotnet" Version="1.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add google-search-results-dotnet --version 1.3.0
#r "nuget: google-search-results-dotnet, 1.3.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install google-search-results-dotnet as a Cake Addin
#addin nuget:?package=google-search-results-dotnet&version=1.3.0

// Install google-search-results-dotnet as a Cake Tool
#tool nuget:?package=google-search-results-dotnet&version=1.3.0

Google/Bing/Baidu Search Result in Dotnet / CSharp / .Net

Build Status NuGet version

This Dotnet package is meant to scrape and parse Google or Bing or Baidu results using SerpApi.

This extension is in development. But the code can be re-use for production because the API is already stable.

The following services are provided:

Serp API provides a script builder to get you started quickly.

Feel free to fork this repository to add more backends.

Installation

To install the package.

dotnet add package google-search-results-dotnet --version 1.2.0

More commands available at https://www.nuget.org/packages/google-search-results-dotnet

Quick start

Let's run a search on Google.

using System;
using SerpApi;
using System.Net.Http;
using Newtonsoft.Json.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

namespace Baidu
{
  class Program
  {

    static void Main(string[] args)
    {
      // secret api key from https://serpapi.com/dashboard
      String apiKey = "";

      // Localized search for Coffee shop in Austin Texas
      Hashtable ht = new Hashtable();
      ht.Add("location", "Austin, Texas, United States");
      ht.Add("q", "Coffee");
      ht.Add("hl", "en");
      ht.Add("google_domain", "google.com");

      try
      {
        BaiduSearchResultsClient client = new BaiduSearchResultsClient(ht, apiKey);

        Console.WriteLine("Search coffee in Austin, Texas on Google [1 credit]");
        JObject data = client.GetJson();
        Console.WriteLine("local coffee shop");
        JArray coffeeShops = (JArray)data["local_results"];
        foreach (JObject coffeeShop in coffeeShops)
        {
          Console.WriteLine("Found: " + coffeeShop["title"]);
        }
        Console.WriteLine("organic result coffee shop");
        coffeeShops = (JArray)data["organic_results"];
        foreach (JObject coffeeShop in coffeeShops)
        {
          Console.WriteLine("Found: " + coffeeShop["title"]);
        }

        string id = (string)((JObject)data["search_metadata"])["id"];
        Console.WriteLine("Search from the archive: " + id + ". [0 credit]");
        JObject archivedSearch = client.GetSearchArchiveJson(id);
        foreach (JObject coffeeShop in (JArray)archivedSearch["organic_results"])
        {
          Console.WriteLine("Found: " + coffeeShop["title"]);
        }

        //  Get account information
        Console.WriteLine("Account information: [0 credit]");
        JObject account = client.GetAccount();
        Dictionary<string, string> dictObj = account.ToObject<Dictionary<string, string>>();
        foreach (string key in dictObj.Keys)
        {
          Console.WriteLine(key + " = " + dictObj[key]);
        }
      }
      catch (SerpApiClientException ex)
      {
        Console.WriteLine("Exception:");
        Console.WriteLine(ex.ToString());
      }
    }
  }
}

This example displays the top 3 coffee shop in Austin Texas found in the local_results. Then it displays all 10 coffee shop found in the regular google search named: organic_results.

Bing search engine

client =  new BingSearchResultsClient(parameter, apiKey);

A full example is available here. https://github.com/serpapi/google-search-results-dotnet/blob/master/example/bing/

Baidu search engine

client =  new BaiduSearchResultsClient(parameter, apiKey);

A full example is available here. https://github.com/serpapi/google-search-results-dotnet/blob/master/example/baidu/

Test

This API is fully unit tested. The tests can be used as implementation examples. https://github.com/serpapi/google-search-results-dotnet/tree/master/test

Changes log

1.3
  • Add bing and baidu support
  • Allow custom HTTP timeout using: setTimeoutSeconds
  • Fix exception class visibility and renamed to SerpApiClientException
1.2
  • Initial release matching SerpApi 1.2 internal API

TODO

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 is compatible.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.1 63,679 10/13/2020
1.5.0 1,562 5/12/2020
1.4.0 535 1/3/2020
1.3.1 900 8/26/2019
1.3.0 495 8/26/2019
1.2.0 557 7/8/2019

README.md