Выполните поиск Google программно, используя ключевые слова


Например, мы заходим в Google и выполняем поиск в Google по ключевым словам.

Можем ли мы выполнить такой запрос программно? как

http://www.google.com/search?q=cupertino+american+food

После выполнения запроса мы должны получить все сведения о результатах поиска для каждой ссылки для хранения в базе данных.

Точно так же, как некоторые сайты предоставляют доступ к api REST, чтобы пользователь мог получить кучу результатов своего запроса.

Я не видел, возможно ли что-то подобное с помощью Google или нет.

Author: user123, 2014-04-16

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;
    }
}

}

 2
Author: Tim Bostwick, 2014-04-25 15:44:34

Какой бы метод вы ни использовали, Google заблокирует ваш IP-адрес для поисковых запросов, подобных ботам. И не пытайтесь использовать прокси-сервер TOR, потому что все их IP-адреса всегда запрещены или оспариваются с помощью captcha.

Вы должны использовать Google API, чтобы соответствовать требованиям и требованиям Google. Кроме того, результат намного лучше

Https://developers.google.com/custom-search/json-api/v1/overview

API является бесплатным, если у вас есть CSE и есть ограничение в 100 запросов в день. Если вам нужно больше, вам будет выставлен счет в размере 5 долларов за 1000 запросов

 3
Author: Andrea Olivato, 2014-04-16 06:28:44

Используйте CURL запрос, рука об руку с буферизацией вывода

 1
Author: maht0rz, 2014-04-16 05:45:15

@user123: Я могу дать несколько советов, если вы умеете работать на C#? Этапы API обширны. Дай мне знать!

 1
Author: Tim Bostwick, 2014-04-24 21:45:31