解析http://www.baidu.com/link?url=

前言

在网上搜索,有说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());
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值