скачать CSV с Google Insight для поиска - PullRequest
5 голосов
/ 01 ноября 2009

Нужна помощь в написании скрипта для загрузки данных из Google Insight с использованием c #

это ссылка для скачивания и требуется логин

http://www.google.com/insights/search/overviewReport?q=test&cmpt=q&content=1&export=2

как мне ввести свое имя пользователя и пароль? нужна помощь, я новичок в C #

Ответы [ 2 ]

7 голосов
/ 01 ноября 2009

Чтобы сделать это, вам нужно сначала подтвердить подлинность , чтобы получить действительный SID для данного сайта Google, который можно использовать для доступа к данным. Вот как вы могли бы добиться этого:

class Program
{
    static void Main(string[] args)
    {
        using (var client = new WebClient())
        {
            // TODO: put your real email and password in the request string
            var response = client.DownloadString("https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email=youraccount@gmail.com&Passwd=secret&service=trendspro&source=test-test-v1");
            // The SID is the first line in the response
            var sid = response.Split('\n')[0];
            client.Headers.Add("Cookie", sid);
            byte[] csv = client.DownloadData("http://www.google.com/insights/search/overviewReport?q=test&cmpt=q&content=1&export=2");

            // TODO: do something with the downloaded csv file:
            Console.WriteLine(Encoding.UTF8.GetString(csv));
            File.WriteAllBytes("report.csv", csv);
        }
    }
}
1 голос
/ 13 апреля 2012

Хорошо, это изменилось за несколько дней.

Теперь вы должны пройти аутентификацию, а не SID.

Итак, код теперь:

class Program
{
    static void Main(string[] args)
    {
        using (var client = new WebClient())
        {
            // TODO: put your real email and password in the request string
            var response = client.DownloadString("https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email=youraccount@gmail.com&Passwd=secret&service=trendspro&source=test-test-v1");
            // The Auth line
            var auth = response.Split('\n')[2];
            client.Headers.Add("Authorization", "GoogleLogin " + auth);
            byte[] csv = client.DownloadData("http://www.google.com/insights/search/overviewReport?q=test&cmpt=q&content=1&export=2");

            // TODO: do something with the downloaded csv file:
            Console.WriteLine(Encoding.UTF8.GetString(csv));
            File.WriteAllBytes("report.csv", csv);
        }
    }
}

И теперь это снова работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...