解析百度搜索结果url地址,使用php得到真实url地址

PHP 投稿 102400 1 评论

解析百度搜索结果url地址,使用php得到真实url地址

最近在研究使用QueryListphp爬虫,需求是爬取百度搜索后的结果。

遇到的问题是百度搜索出来的结果都是https://www.baidu.com/link?url=开头的url地址,需要得到它跳转的真实地址才能爬取到具体数据,那么如何获取到百度搜索结果的真实url地址呢?于是研究了下它的跳转逻辑。

当我们拿到百度某个链接时,显示的是一个链接:
https://www.baidu.com/link?url=6gIGyPY85oEU1YxJVj0W4RGksM0YYY6qWvgqFYXZHuhFQWU54Fwd4qdAzIGPb70t
跳转后的链接是:
http://www.feishuai.vip

使用php得到百度搜索结果真实url地址,实现代码案例如下:

protected function getRealURL($url)
{
    if (empty($url)) return $url;
    $header = get_headers($url, 1);
    var_dump($header);
    if (strpos($header[0], '301') || strpos($header[0], '302')) {
        if (is_array($header['Location'])) {
            //return $header['Location'][count($header['Location'])-1];
            return $header['Location'][0];
        } else {
            return $header['Location'];
        }
    } else {
        return $url;
    }
}

编程笔记 » 解析百度搜索结果url地址,使用php得到真实url地址

赞同 (57) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(1)个小伙伴在吐槽
  1. 借用了。
    游客 2021-11-01 21:15 (3年前) 回复