joh*_*b10 17 html php http-referer search
这可能是一个愚蠢的问题,但是有可能捕获用户键入Google搜索框的内容,以便可以在我的网站上的目标网页上生成动态页面吗?
例如,假设有人在Google上搜索"热狗",我的网站就会成为搜索结果链接之一.如果用户点击指向他们链接到我网站的链接,我是否可以以某种方式从Google搜索框中了解或捕获"热狗"文本,以便我可以调用在本地数据库中搜索内容的脚本有关热狗,然后显示?对我来说似乎完全不可能,但我真的不知道.谢谢.
Pet*_*ley 24
我会这样做的
$referringPage = parse_url( $_SERVER['HTTP_REFERER'] );
if ( stristr( $referringPage['host'], 'google.' ) )
{
parse_str( $referringPage['query'], $queryVars );
echo $queryVars['q']; // This is the search term used
}
Run Code Online (Sandbox Code Playgroud)
Gab*_*ner 14
这是一个老问题,答案已经改变,因为最初的问题被提出并回答了.截至2011年10月,Google正在为登录Google帐户的所有人加密此推荐信息:http://googleblog.blogspot.com/2011/10/making-search-more-secure.html
对于未登录Google的用户,仍会在推荐网址中找到搜索关键字,上述答案仍然适用.但是,对于经过身份验证的Google用户,网站无法查看其搜索关键字.
但是,通过创建专用登录页面,仍然可以进行智能猜测.(参观"赫特贾巴的尊严木炭素描"页面的访客可能......好吧,疯了.)
Juh*_*älä 12
对的,这是可能的.请参阅HTTP标头Referer.Referer标题将包含Google搜索结果页面的URL.
当用户点击Google搜索结果页上的链接时,浏览器会使用此类HTTP标头向您的网站发出请求:
Referer: http://www.google.fi/search?hl=en&q=http+header+referer&btnG=Google-search&meta=&aq=f&oq=
Run Code Online (Sandbox Code Playgroud)
只需解析请求标头中的URL,用户使用的搜索字词将在q -parameter中.上面示例中使用的搜索词是" http header referer ".
同样的方法通常也适用于其他搜索引擎,它们在Referer头中只有不同类型的URL.
这个答案显示了如何在PHP中实现它.
Referer标头仅适用于HTTP 1.1,但它几乎涵盖了任何现代浏览器.浏览器也可能伪造Referer标题或标题可能完全丢失,因此不要根据Referer标题做出太严重的请求.
这是一个老问题,但我发现谷歌不再提供查询字词,因为它默认情况下将每个用户重定向到https,这不会给你"q"参数.除非有人手动输入带有http(http://google.com)的google网址并进行搜索,否则目前无法获得"q"参数.
| 归档时间: |
|
| 查看次数: |
13522 次 |
| 最近记录: |