google-search-results-dotnet
1.3.0
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
<PackageReference Include="google-search-results-dotnet" Version="1.3.0" />
paket add google-search-results-dotnet --version 1.3.0
#r "nuget: google-search-results-dotnet, 1.3.0"
// 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
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:
- Search API
- Location API - not implemented
- Search Archive API - not implemented
- Account API - not implemented
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
- Add test
- Implement all 4 API
- Enable CI integration
- Publish package
- Improve documentation
- Add advanced examples like: https://github.com/serpapi/google-search-results-ruby (wait for user feedback)
Product | Versions 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.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. |
-
.NETCoreApp 2.0
- Newtonsoft.Json (>= 12.0.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on google-search-results-dotnet:
Package | Downloads |
---|---|
Promptflow.Tools
Prompt flow built-in tools |
GitHub repositories
This package is not used by any popular GitHub repositories.
README.md