Выполните поиск Google программно, используя ключевые слова
Например, мы заходим в Google и выполняем поиск в Google по ключевым словам.
Можем ли мы выполнить такой запрос программно? как
http://www.google.com/search?q=cupertino+american+food
После выполнения запроса мы должны получить все сведения о результатах поиска для каждой ссылки для хранения в базе данных.
Точно так же, как некоторые сайты предоставляют доступ к api REST, чтобы пользователь мог получить кучу результатов своего запроса.
Я не видел, возможно ли что-то подобное с помощью Google или нет.
4 answers
@Mahtorz: Хорошо, вот примерный код, который доставит Json обратно на консоль. Обратите внимание, что строка поиска базы api отличается от той, которая у вас есть, которая www.google.com/search?q = купертино + американское + еда. Вам нужно использовать базовый URL-адрес Google API ниже. У вас есть свой APIkey и CXKEY? Если нет, я тоже могу провести вас по этим шагам.
using System;
using System.Text;
using System.Net;
using System.IO;
using System.Web;
namespace GoogleSearchTest1
{
class Program
{
//Google keys
const string APIKey = "{your key here}";
const string CSEKey = "{your key here}";
//base url for the search query
const string GoogleBaseURL = "https://www.googleapis.com/customsearch/v1?"; //per Google documentation
public static void Main(string[] args)
{
string myQuery = "cupertino american food"; //put what you're searching for here
string result = submitSearch(myQuery);
Console.WriteLine(result);
string dummy = Console.ReadLine();
}
public static string submitSearch(string myQuery)
{
try
{
string final = string.Format(GoogleBaseURL+"key={0}&cx={1}&q={2}",
HttpUtility.UrlEncode(APIKey),
HttpUtility.UrlEncode(CSEKey),
HttpUtility.UrlEncode(myQuery));
final += "&alt=json";
WebRequest myRequest = WebRequest.Create(final);
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
Stream myStream = myResponse.GetResponseStream();
StreamReader myReader = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = myReader.ReadToEnd();
myStream.Close();
myReader.Close();
myResponse.Close();
return result;
}
catch (Exception e)
{
//debug statement
}
return null;
}
}
}
Какой бы метод вы ни использовали, Google заблокирует ваш IP-адрес для поисковых запросов, подобных ботам. И не пытайтесь использовать прокси-сервер TOR, потому что все их IP-адреса всегда запрещены или оспариваются с помощью captcha.
Вы должны использовать Google API, чтобы соответствовать требованиям и требованиям Google. Кроме того, результат намного лучше
Https://developers.google.com/custom-search/json-api/v1/overview
API является бесплатным, если у вас есть CSE и есть ограничение в 100 запросов в день. Если вам нужно больше, вам будет выставлен счет в размере 5 долларов за 1000 запросов
Используйте CURL запрос, рука об руку с буферизацией вывода
@user123: Я могу дать несколько советов, если вы умеете работать на C#? Этапы API обширны. Дай мне знать!