【编者按】:网学网PHP为您提供解析百度搜索结果link?url=参数分析 (全)参考,解决您在解析百度搜索结果link?url=参数分析 (全)学习中工作中的难题,参考学习。
前几天写过一篇可以获取到百度跳转之后的网址的文章,在百度了一下,有人也研究过百度link?url=的。
大概得出如下结果: 1、加密方式根据:随机+输入停留时间+快照地址进行加密
2、整个代码中应该有三个部分:1、搜索词的时间;2、搜索的关键词;3、随机生成的唯一性标识代码。
3、在任何环境或浏览器下 url=最后有一段相似的代码
从以上别人研究的结果可以知道,“最后有一段相似的代码”是比较可用的,于是先从此入手。
我搜索“enenba” 发现,我的第一个搜索结果的URL都有一段代码是相同的,那就是
http://www.baidu.com/link?url=…………ebac5573358cc3c0659257bfcf54763ec1c5ecff3b3fbd1d4c
所有搜索结果都有的一段代码 ebac5573358cc3c0659257bfcf54 (搜索N次后发现)
后面结尾的 763ec1c5ecff3b3fbd1d4c 看起来像是搜索结果的真实URL。(已经验证是真实URL的密文)
我是这样验证的:
1、先百度搜索 www.php100.com
第一个结果
链接:
http://www.baidu.com/link?url=…………ebac5573358cc3c0659257bfcf546427d385fef6656de2404d6843da27
看到前面的几位6427d385fef6656de2404d6843da27
2、 再百度搜索 www.hao123.com
第一个结果
链接:
http://www.baidu.com/link?url=…………ebac5573358cc3c0659257bfcf54 6427d385e6ff7a6de0434d6843da
看到前面的几位6427d385e6ff7a6de0434d6843da
……
多次搜索N个网站后发现,域名前几位是“www.”的,密文是都是6427d385
并且www.是四个字符,密文6427d385是八个字符。可以知道密文两个字符等于url一个字符。
于是写了一个php表单
查询并得到密文部分,方便以后查看。
出个php源码:
复制代码 代码如下:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>
查询百度link?ulr=真实链接表单</title>
</head>
<body>
<?php
/*
getrealurl 获取301、302重定向后的URL地址 by enenba.com
@param str $url
查询 $return str 定向后的url的真实url
*/
function getrealurl($url){
$header = get_headers($url,1);
if (strpos($header[0],''301'') || strpos($header[0],''302'')) {
if(is_array($header[''Location''])) {
return $header[''Location''][count($header[''Location''])-1];
}else{
return $header[''Location''];
}
}else {
return $url;
}
}
$input = ''<form method="get" action=""><input type="text" name="url" id="url" style="width:800px;" /><input type="submit" value="提交" /></form><body></html>'';
$url = isset(
解析百度搜索结果link?url=参数分析 (全)_网学
解析百度搜索结果link?url=参数分析 (全)
浏览:
GET[''url''])?
解析百度搜索结果link?url=参数分析 (全)_网学
解析百度搜索结果link?url=参数分析 (全)
浏览:
GET[''url'']:'''';
if(empty($url)) exit($input);
$urlreal = getrealurl($url);
echo ''真实的url为:''.$urlreal;
$urlreal = ltrim($urlreal,''http://'');
$search = ''/ebac5573358cc3c0659257bfcf54([0-9a-f]+)/i'';
preg_match($search,$url,$r);
$url_encode = $r; unset($r);
echo ''<br/>密文部分为:''.$url_encode.''<br/>'';
$urlreal_arr = str_split($urlreal);
$url_encode_arr = str_split($url_encode,2);
echo ''<br />'';
echo $input;
?>
上一个在线例子:猛击测试
明天再研究,待续。。。。
本站事先声明:cnbeta上的文章不是我发布的。我解析只是根据自己的想法进行研究的,只是求个过程,至于有没有结果,我自有定论,大家别喷了。
接上一篇文章,仔细看了下百度结果url的长段代码,发现密文中只有数字和a到f字母组成,也就是十六进制的代码。
十六进制是从 0->1->2->3->4->5->7->8->9->a->b->c->d