php: получить первый результат Google - PullRequest
1 голос
/ 06 июля 2011

У меня был этот код, который помогает мне получить URL-адрес страницы актера в IMDB, выполнив поиск «IMDB + имя актера» и предоставив мне URL-адрес его страницы профиля IMDB.

Он работал нормально до 5 минутназад и вдруг он перестал работать.Есть ли у нас дневной лимит для запросов Google (было бы очень странно!) Или я что-то изменил в своем коде, не заметив (в этом случае вы можете определить, в чем дело?)?

function getIMDbUrlFromGoogle($title){
    $url = "http://www.google.com/search?q=imdb+" . rawurlencode($title);
    echo $url;
    $html = $this->geturl($url);
    $urls = $this->match_all('/<a href="(http:\/\/www.imdb.com\/name\/nm.*?)".*?>.*?<\/a>/ms', $html, 1);

    if (!isset($urls[0]))
        return NULL;
    else
        return $urls[0]; //return first IMDb result

}

function geturl($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1");
    $html = curl_exec($ch);
    curl_close($ch);
    return $html;
}

function match_all($regex, $str, $i = 0)
{
    if(preg_match_all($regex, $str, $matches) === false)
        return false;
    else
        return $matches[$i];
}

Ответы [ 3 ]

1 голос
/ 06 июля 2011

На самом деле они будут задушить вас, если вы будете делать запросы слишком быстро или делать слишком много.Например, их SOAP API ограничивает вас до 1 000 запросов в день.Либо добавьте ожидание, либо используйте что-то, что предлагает такой вид использования ... например, Yahoo! BOSS.http://developer.yahoo.com/search/boss/

ETA: Мне действительно очень нравится BOSS, и я фанат Google.Это дает вам много ресурсов, чистые данные и гибкость ... Google никогда не давал нам ничего подобного, что очень плохо.

0 голосов
/ 06 июля 2011

Веб-страница Google предназначена для использования людьми; они будут закрывать вас, если они заметят, что вы интенсивно используете его автоматически. В их Условиях обслуживания ясно, что то, что вы делаете, запрещено. (Хотя они, похоже, больше не ссылаются непосредственно на страницу результатов поиска, тем более на их первую страницу, и в любом случае AIUI, по крайней мере, некоторые суды подтвердили, что размещение ссылки на странице не имеет юридической силы.)

Они хотят, чтобы вы использовали их API, и, если вы интенсивно его используете, платить (они не непомерны).

Тем не менее, почему вы не идете прямо к IMDb ?

0 голосов
/ 06 июля 2011

Существует API для поиска в Google , и он ограничен 100 запросов / день ! И не разрешается получать результаты поиска Google с любым видом автоматического инструмента, в соответствии с руководящими принципами G.

...