zoukankan      html  css  js  c++  java
  • 解析百度搜索结果链接的url,获取真正的url

    通常,在百度输入关键词搜索出现的列表页,点击目标链接,然而跳转的时候却是百度地址,经过百度解析,才真的跳到目标页面。

    在SEO中,经常需要看下自己的网站排名,又不想手动每天手动去点,可用以下方法去得到目标地址。

    原理相当的简单:模拟请求,得到真正的地址。

    <?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
    ");
    fputs($fp, "Host: {$info['host']}
    ");
    fputs($fp, "Connection: close
    
    ");
    $rewrite = '';
    while(!feof($fp)) {
        $line = fgets($fp);
        if($line != "
    " ) {
            if(strpos($line,'Location:') !== false) {
                $rewrite = str_replace(array("
    ","
    ","Location: "),'',$line);
            }
        }else {
            break;
        }
    }
    var_dump($rewrite); //结果显示:string(22) "http://www.google.com/" 
    ?>

    将http://www.baidu.com/link?url=nS2MGJqjJ4zBBpC8yDF8xDh8vibi1lVeE7gGr9UONBu解析为http://www.google.com/

  • 相关阅读:
    Java多线程初学者指南(5):join方法的使用
    Java多线程初学者指南(4):线程的生命周期
    使用Runnable接口创建线程-3
    用Thread类创建线程-2
    线程简介-1
    Struts, Namespace用法
    多线程编程
    算法实例
    java 堆与栈的区别
    Spring AOP EXPRESSION
  • 原文地址:https://www.cnblogs.com/lazb/p/12082672.html
Copyright © 2011-2022 走看看