首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >百度收录状态检查与URL提交API的实现

百度收录状态检查与URL提交API的实现

原创
作者头像
小唐同学.
修改2025-09-18 11:11:20
修改2025-09-18 11:11:20
810
举报
文章被收录于专栏:CMS建站教程CMS建站教程

概述

在SEO优化工作中,了解网站在搜索引擎中的收录状态并及时提交新内容至关重要。本文分析的PHP脚本实现了两个核心功能:

  1. 收录状态检查:查询指定URL是否被百度搜索引擎收录
  2. 主动推送:将URL提交至百度搜索引擎加速收录

技术实现解析

1. 基础设置与参数处理

代码语言:php
复制
// 允许跨域请求
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json; charset=utf-8');

// 获取参数
$action = isset($_GET['action']) ? $_GET['action'] : '';
$url = isset($_GET['url']) ? $_GET['url'] : '';

脚本首先设置CORS头部允许跨域访问,并指定响应格式为JSON。这种设计使该接口可被前端应用直接调用,方便集成到Web项目中。

2. 收录检查功能的实现

checkBaiduIndex()函数通过模拟百度搜索查询来判断URL收录状态:

代码语言:php
复制
function checkBaiduIndex($url) {
    $urlParts = parse_url($url);
    $domain = $urlParts['host'];
    $path = isset($urlParts['path']) ? $urlParts['path'] : '';
    $query = isset($urlParts['query']) ? '?' . $urlParts['query'] : '';
    
    // 构造百度搜索URL
    $searchUrl = "https://www.baidu.com/s?wd=site:{$domain} inurl:" . urlencode($path . $query);
    
    // 设置请求头模拟浏览器
    $options = [
        'http' => [
            'method' => 'GET',
            'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...'
        ]
    ];
    
    $context = stream_context_create($options);
    $result = file_get_contents($searchUrl, false, $context);
    
    // 分析搜索结果
    $isIndexed = strpos($result, '没有找到与') === false && strpos($result, $domain) !== false;
    
    return [
        'success' => true,
        'indexed' => $isIndexed,
        'message' => $isIndexed ? '该URL已被百度收录' : '该URL未被百度收录'
    ];
}

技术要点

  • 使用parse_url()解析URL获取域名和路径信息
  • 构造特定的搜索查询:site:domain.com inurl:/path/page
  • 设置User-Agent模拟浏览器行为,避免被百度反爬机制拦截
  • 通过搜索结果的特定文本判断收录状态

3. URL提交功能的实现

submitToBaidu()函数使用百度站长平台的API接口提交URL:

代码语言:php
复制
function submitToBaidu($url, $token) {
    $urlParts = parse_url($url);
    $domain = $urlParts['host'];
    
    // 构造百度API接口URL
    $apiUrl = "http://data.zz.baidu.com/urls?site={$domain}&token={$token}";
    
    // 设置POST请求
    $options = [
        'http' => [
            'method' => 'POST',
            'header' => 'Content-Type: text/plain',
            'content' => $url
        ]
    ];
    
    $context = stream_context_create($options);
    $result = file_get_contents($apiUrl, false, $context);
    
    // 解析API响应
    $resultData = json_decode($result, true);
    
    if (isset($resultData['success'])) {
        return [
            'success' => true,
            'message' => '提交成功,预计' . $resultData['success'] . '条URL将被收录',
            'data' => $resultData
        ];
    } else {
        return [
            'success' => false,
            'message' => '提交失败: ' . (isset($resultData['message']) ? $resultData['message'] : '未知错误'),
            'data' => $resultData
        ];
    }
}

技术要点

  • 使用百度官方提供的收录API接口
  • 需要有效的站长平台token进行身份验证
  • 通过POST方式提交URL数据
  • 解析并返回API的JSON响应

结尾

这种类型的接口可以轻松集成到内容管理系统中,自动化SEO监控和优化流程,大大提高网站管理效率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 技术实现解析
      • 1. 基础设置与参数处理
      • 2. 收录检查功能的实现
      • 3. URL提交功能的实现
    • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档