google-search-results-dotnet
1.5.0
See the version list below for details.
dotnet add package google-search-results-dotnet --version 1.5.0
NuGet\Install-Package google-search-results-dotnet -Version 1.5.0
<PackageReference Include="google-search-results-dotnet" Version="1.5.0" />
paket add google-search-results-dotnet --version 1.5.0
#r "nuget: google-search-results-dotnet, 1.5.0"
// Install google-search-results-dotnet as a Cake Addin #addin nuget:?package=google-search-results-dotnet&version=1.5.0 // Install google-search-results-dotnet as a Cake Tool #tool nuget:?package=google-search-results-dotnet&version=1.5.0
Google/Bing/Baidu Search Result in Dotnet / CSharp / .Net
This Dotnet package is meant to scrape and parse results from Google, Bing, Baidu, Yandex, Yahoo, Ebay and more 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
SerpApi provides a script builder to get you started quickly.
Installation
To install the package.
dotnet add package google-search-results-dotnet --version 1.4.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"]["places"];
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]);
}
// close socket
client.Close()
}
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/
Yahoo search engine
client = new YahooSearchResultsClient(parameter, apiKey);
Yandex search engine
client = new YandexSearchResultsClient(parameter, apiKey);
Ebay search engine
client = new EbaySearchResultsClient(parameter, apiKey);
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.5
- Add support for Yandex, Ebay, Yahoo
1.4
- Bug fix: Release Socket connection when requests finish. Because Dotnet does not release the ressource when the HTTP Client is closed.
- Add Yahoo support: YahooSearchResultsClient
- Create only one client for all the connection
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 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