如何从谷歌获取referer搜索查询?

问题描述 投票:10回答:4

就在两天前,以下代码用于从谷歌获取搜索查询:

$refer = parse_url($_SERVER['HTTP_REFERER']);
$host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);

if(strstr($host,'www.google.com'))
{
    //do google stuff
    $qstart = strpos($query, 'q=') +2;
    $qend = strpos($query, '&', $qstart);
    $qlength = $qend - $qstart;
    $querystring = substr($query, $qstart, $qlength);
    $querystring = str_replace('q=','',$querystring);
    $keywords = explode('%20',$querystring);
    $keywords = implode(' ', $keywords);
    return $keywords;                      
    }

但是,现在却没有。我通过使用echo($ query)对其进行了测试,看来google进程引用查询请求的方式已经改变。以前$查询包括在内

"q=term1%20term2%20term3%20...

但是,现在,当$ query被回显时,我得到以下输出:

sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCsQFjAB&url=http%3A%2F%2Fexample.com%2F&ei=vDA-UNnxHuOjyAHlloGYCA&usg=AFQjCNEvzNXHULR0OvoPMPSWxIlB9-fmpg&sig2=iPinsBaCFuhCLGFf0JHAsQ

有办法解决这个问题吗?

php search-engine google-search
4个回答
11
投票

很抱歉,这是全球性的Google政治变化。

请参阅网站链接

http://googlewebmastercentral.blogspot.ru/2012/03/upcoming-changes-in-googles-http.html

这意味着如果用户登录Google帐户。您可以自己尝试:如果您的Google搜索网址以https://开头,则表示Google会隐藏一些临时参数以保护隐私。


1
投票

本周我也遇到了同样的问题。我不确定这是否仍然与您相关,但我发现Google发起的SSL(安全套接字层)搜索大约一年前签名的用户,看起来SSL搜索现在可能应用于所有Google搜索查询。当我测试这个时,我没有登录Google并使用Firefox并且仍然获得了加密的引用查询。

本文有一些有用的背景和一些没有特定搜索词数据的工作的想法:http://searchenginewatch.com/article/2227114/5-Tips-for-Handling-Not-Provided-Data


1
投票
    // take the referer
$thereferer = strtolower($_SERVER['HTTP_REFERER']);
// see if it comes from google
if (strpos($thereferer,"google")) {
    // delete all before q=
    $a = substr($thereferer, strpos($thereferer,"q="));     
    // delete q=
    $a = substr($a,2);
    // delete all FROM the next & onwards
    if (strpos($a,"&")) {
        $a = substr($a, 0,strpos($a,"&"));
    }   
    // we have the results.
    $mygooglekeyword = urldecode($a);
}

0
投票

Google为所有搜索启动了SSL,此信息仅通过Google Analytics提供。但是,对于付费广告系列,Google,Bing和Yahoo等搜索引擎会使用查询字符串参数(例如utm_parameters),您可以从参数utm_term访问搜索查询。

© www.soinside.com 2019 - 2024. All rights reserved.