Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт парсинга adwords.google.com, Сбор статистики ключевых запросов Google 
:(
    Опции темы
Elfer
Дата 19.3.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: нет
Всего: -1



Пишу скрипт, который по ключевому слову залезет в google и проверит кол-во запросов.
Обычно мы делаем так: Открываем https://adwords.google.com/select/KeywordToolExternal .
Вводим ключевое слово и подтверждаем капчу. Открывается страничка https://adwords.google.com/select/KeywordTo...l?defaultView=2 и тут же Ajax'ом подгружается таблица по данному запросу.
Например, я смотрю слово "вода". Получается "Приблизительное среднее количество запросов" - 165 000

Открываю консоль Firebug'а и вижу адрес, по которому грузится эта инфа:
_https://adwords.google.com/select/VariationsTool?adgroupid=0&campaignid=0&adgroupIntegrated=false&skipLogin=true&currencyCode=USD&maxCpcOverride=&targetLanguages=ru&targetCountries=*&synonyms=true&captchaAnswer=qmwfyau&suggest=true&excludedWords=&allowExisting=true&showAdult=false&showTrademark=null&keywords=%D0%B2%D0%BE%D0%B4%D0%B0

Пробую загрузить эту страничку через скрипт, мне возвращает:
Время вашей сессии истекло. Вернитесь на главную страницу AdWords  и снова войдите в систему. 

Но, если я вышеописанную ссылку открываю в браузере - все нормально, загружается нужная мне информация. Есть предположение, что google, как-то определяет, через браузер я открываю страничку или через скрипт. Но и этот момент я предусмотрел и в CURLOPT_USERAGENT пихаю инфу браузера.

Код

$url = 'https://adwords.google.com/select/VariationsTool?adgroupid=0&campaignid=0&adgroupIntegrated=false&skipLogin=true&currencyCode=USD&maxCpcOverride=&targetLanguages=ru&targetCountries=*&synonyms=true&captchaAnswer=qmwfyau&suggest=true&excludedWords=&allowExisting=true&showAdult=false&showTrademark=null&keywords=%D0%B2%D0%BE%D0%B4%D0%B0';
function get_content($url) {
    $ua = $_SERVER['HTTP_USER_AGENT'] ? $_SERVER['HTTP_USER_AGENT'] : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
    $ch = curl_init( );
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_USERAGENT, $ua );
    curl_setopt( $ch, CURLOPT_HTTPHEADER, array( "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3", "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7" ) );
    curl_setopt( $ch, CURLOPT_ENCODING, "gzip, deflate" );
    
    // Для https страничек отключаем сертификаты
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt( $ch, CURLOPT_TIMEOUT, 20 );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    $result = curl_exec( $ch );
    curl_close( $ch );
    return $result;
}


Даже https://adwords.google.com/select/KeywordToolExternal пытаюсь загрузить через скрипт, грузится все, кроме капчи, т.е. даже капчу не введешь.

У кого какие идеи?
PM MAIL WWW ICQ   Вверх
enof
Дата 19.3.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: нет
Всего: 35



Сначала пройти авторизацию и сохранить все куки, а потом олучать страницы.
PM MAIL ICQ Skype   Вверх
Elfer
Дата 19.3.2009, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: нет
Всего: -1



Там нет авторизации. Единственное что там надо, так это ввести капчу. Скрипт загружает эту страничку, а вместо капчи написано "false"
PM MAIL WWW ICQ   Вверх
enof
Дата 19.3.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: нет
Всего: 35



Elfer, сохраните куки.
PM MAIL ICQ Skype   Вверх
Elfer
Дата 19.3.2009, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: нет
Всего: -1



Подскажите, please, как их программно сохранить? Что-то нашел в Инете, но, наверное не то. Так как файл куков, после загрузки все равно остается пустым. Код куков:
Код

    $cfile = "./cookies/google.txt";
    if ( !file_exists( $cfile ) )
    {
        $cf = @fopen( $cfile, "w+" );
        if ( $cf )
        {
            @fclose( $cf );
        }
    }
    curl_setopt( $ch, CURLOPT_COOKIEJAR, $cfile );
    curl_setopt( $ch, CURLOPT_COOKIEFILE, $cfile );


Соответственно вставил его в тело функции:
Код

function get_content( $url ) {
    $ua = $_SERVER['HTTP_USER_AGENT'] ? $_SERVER['HTTP_USER_AGENT'] : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
    $ch = curl_init( );
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_USERAGENT, $ua );
    curl_setopt( $ch, CURLOPT_HTTPHEADER, array( "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3", "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7" ) );
    curl_setopt( $ch, CURLOPT_ENCODING, "gzip, deflate" );
    
    // Для https страничек отключаем сертификаты
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt( $ch, CURLOPT_TIMEOUT, 20 );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    
    $cfile = "./cookies/google.txt";
    if ( !file_exists( $cfile ) )
    {
        $cf = @fopen( $cfile, "w+" );
        if ( $cf )
        {
            @fclose( $cf );
        }
    }
    curl_setopt( $ch, CURLOPT_COOKIEJAR, $cfile );
    curl_setopt( $ch, CURLOPT_COOKIEFILE, $cfile );
    
    $result = curl_exec( $ch );
    curl_close( $ch );
    return $result;
}

PM MAIL WWW ICQ   Вверх
enof
Дата 19.3.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: нет
Всего: 35



Смотрите какие заголовки отправляются, че js делает и т.д. сразу так не сказать что именно надо сделать.
ff+firebug+livehttpheaders вам в помощь.
PM MAIL ICQ Skype   Вверх
SureGOOD
Дата 25.3.2009, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 25.3.2009

Репутация: нет
Всего: -1



я делал такой скрипт, но я делал с авторизацией, но учитывая политику гугла, уверен, что и без авторизации там камней много, могу сказать, что js скрипты там ничего важного не устанавливают, смотришь отправляемые заголовки и принимаемые(перед этим советую почистить куки)
PM MAIL   Вверх
Elfer
Дата 25.3.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: нет
Всего: -1



Вообщем, не получается у меня ничерта, ввожу капчу, отправляю запрос с капчей-ответом, принимаю и отправляю куки, все равно не прокатывает.
SureGOOD, может что подскажете?
PM MAIL WWW ICQ   Вверх
SureGOOD
Дата 25.3.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 25.3.2009

Репутация: нет
Всего: -1



ну обычным COOKIEJAR,COOKIEFILE тут не обойтись, там вручную желательно формировать куки(не ручаюсь, но я делал так), а отправлять можно тем же курлом, тем более, что это удобно, внимательно (!!!) посмотрите заголовки при отправке, до отправки и вообще все это нужно досконально проанализировать, гугл парсерам устраивает большие сложности, каждый инструмент имеет свои сложности, но с куками работа идет примерно одна и та же, а вообще для вашей цели советовал бы использовать инструмент "Оценщик траффика" все в том же адвордсе, мне кажется там данные более достоверные, хотя проблемы вашей это не решит)

Это сообщение отредактировал(а) SureGOOD - 25.3.2009, 20:35
PM MAIL   Вверх
SureGOOD
Дата 30.3.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 25.3.2009

Репутация: нет
Всего: -1



Ну как у вас дела?)получилось?)
PM MAIL   Вверх
Elfer
Дата 30.3.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 31.8.2008

Репутация: нет
Всего: -1



Слишком много время отнимает. Бросил это дело - ничего не получается. На первое время сделал ручное заполнение статистики запросов. Позже буду опять добивать этот вопрос
PM MAIL WWW ICQ   Вверх
SamDark
Дата 2.7.2009, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 0
Всего: 38



Elfer,
API вроде у них не так дорог. Вот для AdSense подобное дело оправдано: не дают небольшим проектам API.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.