前言

在网上搜索,有说url后面的参数是百度收录后生成的参数。
解析方式:https://blog.csdn.net/weixin_30883777/article/details/94793401
模拟请求,得到真正的地址

php方式

https://www.cnblogs.com/xcsn/p/4678304.html

<?php
$url = "http://www.baidu.com/link?url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu";

$info = parse_url($url);
$fp = fsockopen($info['host'], 80,$errno, $errstr, 30);
fputs($fp,"GET {$info['path']}?{$info['query']} HTTP/1.1\r\n");
fputs($fp, "Host: {$info['host']}\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$rewrite = '';
while(!feof($fp)) {
    $line = fgets($fp);
    if($line != "\r\n" ) {
        if(strpos($line,'Location:') !== false) {
            $rewrite = str_replace(array("\r","\n","Location: "),'',$line);
        }
    }else {
        break;
    }
}
var_dump($rewrite); //结果显示:string(22) "http://www.google.com/" 
?>

java方式

@Test
public void mockRequest() throws IOException {
    String url = "http://www.baidu.com/link?url=Ughq64BCTKM84_A93RrmeHcDWPmkf9HaFj7IQOB8sWkr6AVr8BqZ9eHrcOlK2Di_";
    Document doc = Jsoup.connect(url).get();
    System.out.println("网页标题:" + doc.title());
    System.out.println("网页地址:" + doc.location());
}
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐