【问题标题】:Can't parse new google urls - HTTP_REFERER doesn't contain parameters anymore无法解析新的 google url - HTTP_REFERER 不再包含参数
【发布时间】:2011-04-06 08:12:52
【问题描述】:

这对我来说似乎有点奇怪,但尽管每个人都知道新的 google 搜索 url(参见 Google using # instead of search? in URL. Why?),但没有人对 HTTP_REFERER 有任何问题。

我正在使用引荐来源网址来解析搜索查询的 google 字符串 (&q= ),但由于这一切都在一个井号标签中,它不会被发送到服务器,我得到的只是“http://www.google.de/”。

那么您知道在登陆我的网站之前获取用户搜索查询的方法吗?

【问题讨论】:

    标签: parsing url hash http-referer


    【解决方案1】:

    由于 2011 年末的 Google 安全更改,当搜索由已登录的 Google 用户执行时,这不再可能。见:

    【讨论】:

      【解决方案2】:

      由于查询字符串中有多个 q,因此您必须全局匹配“q”参数并取最后一个:

      /[?|&|#]q=([^&|^#]+)/ig

      摆脱“站点:”搜索(还有其他的,但我没有这样做)

      /[\+|?|&]?site:([^&|^#])+/g, '');

      然后解析结果。

      /[\w^'\(\)\{\}]+|"[^"]+"/g

      这对我来说效果很好。

      【讨论】:

      • 实际上,之后还有一些清理工作要做。我一直在 javascript 中这样做,而没有负面展望的好处。也许其他人可以启发我? query = query.replace(/(\'|")/, '\$1'); query = query.replace(/\+site:(.+)$/, ''); //now done above, but left here for backup query = query.replace(/^[?|&]q=/, ''); //because the Google search is global this has to be lopped off query = query.replace(/^&query=/, ''); //ditto for lycos
      猜你喜欢
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多