привет, мне нужно как-то получить региональный интерес и интерес со временем от
http://www.google.com/trends?q=lingerie+&ctab=0&geo=id&date=all&sort=0
или лучше
http://www.google.com/insights/search/#q=lingerie&geo=ID&cmpt=q
поэтому я узнал, что нам нужно логин для экспорта данных, может ли кто-нибудь дать мне пример, используя это с нашим именем пользователя и паролем Google? возможно, используя curl для экспорта данных? или что-то другое
Спасибо, что посмотрели
Адам Рамадхан
Чтобы быть быстрым, я использовал свой класс xhttp, который является завитушкой, и я думаю, что код достаточно прост, чтобы следовать.
<?php header('content-type: text/plain'); // Set account login info $data['post'] = array( 'accountType' => 'HOSTED_OR_GOOGLE', // indicates a Google account 'Email' => '', // full email address 'Passwd' => '', 'service' => 'trendspro', // Name of the Google service 'source' => 'codecri.me-example-1.0' // Application's name, eg companyName-applicationName-versionID ); $response = xhttp::fetch('https://www.google.com/accounts/ClientLogin', $data); // Test if unsuccessful if(!$response['successful']) { echo 'response: '; print_r($response); die(); } // Extract SID preg_match('/SID=(.+)/', $response['body'], $matches); $sid = $matches[1]; // Erase POST variables used on the previous xhttp call $data = array(); // Set the SID in cookies $data['cookies'] = array( 'SID' => $sid ); $response = xhttp::fetch('http://www.google.com/insights/search/overviewReport?q=lingerie&geo=ID&cmpt=q&content=1&export=1', $data); // CSV data in the response body echo $response['body']; ?>
Результат: http://codecri.me/apps/test/test.google.trends.php Но я не уверен, является ли результат тем, что вы ищете.
С апреля 2012 года Google изменила свою политику, изменив код Арвина следующим образом:
// Extract Auth preg_match('/Auth=(.+)/', $response['body'], $matches); $auth = $matches[1]; // Erase POST variables used on the previous xhttp call $data = array(); // Set the Authorization header $data['headers'] = array( 'Authorization' => 'GoogleLogin auth='.$auth );
Страница curl man описывает, как указать имя пользователя и пароль. Вы пробовали флаг -u?
-u / – user Укажите имя пользователя и пароль для аутентификации сервера. Переопределяет -n / – netrc и -netrc-optional.
If you just give the user name (without entering a colon) curl will prompt for a password. If you use an SSPI-enabled curl binary and do NTLM authentication, you can force curl to pick up the user name and password from your environment by simply specifying a single colon with this option: "-u :". If this option is used several times, the last one will be used.