本文最后更新于202 天前,其中的信息可能已经过时,如有错误请发送邮件到[email protected]
注册百度站长工具
进入百度搜索资源平台的站长工具,注册并登入账号,在“用户中心-站点管理”界面按照流程提交自己的网址。
打开“搜索服务”-“普通收录”,找到“php推送示例”,复制代码备用。
使用说明
普通收录_加快网站内容抓取,快速提交数据工具_站长工具_网站支持_百度搜索资源平台 (baidu.com)
- 1、普通收录工具可以向百度搜索主动推送资源,缩短爬虫发现网站链接的时间,不保证收录和展现效果。
- 2、API提交和手动提交共享配额,sitemap提交配额不与其他方式共享,具体配额以站点页面显示数据为准 。配额不可累计,当日有效。
- 3、若链接存在跳转关系,请直接提交跳转后链接。如网站换域名,需提交新域名资源;进行HTTPS改造页面,请提交HTTPS资源。
使用API手动提交网址
在网站根目录下建立“urls.php”文件,填入以下内容(www.example.com全部替换为自己的网站域名)
<?php
$urls = array(
//在这里填入需要收入的网址
'https://www.example.com/1.html',
'https://www.example.com/2.html',
);
//$api里的site是自己的网站域名,token是百度收录API里提供的16位数字
$api = 'http://data.zz.baidu.com/urls?site=https://www.example.com&token=T***4';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
?>
保存后,在浏览器地址栏中输入 https://www.example.com/urls.php ,根据返回结果即可知道是否成功提交。
注意:百度站长工具每天只能收录10条网址,多了直接报错;比如,还剩3次配额则只能填3个网址,不能多填。
使用API自动提交网址
实现原理:通过建立插件定时进行提交资源的操作。
进入Wordpress插件目录(路径:./wp-content/plugins),新建文件夹,命名为”siteurls-autto-baidu“。
进入文件夹,新建php文件”siteurls-autto-baidu.php“,填入以下代码,将site和token替换为百度收录API的信息,保存,在Wordpress插件中心启用插件”Siteurls Auto to Baidu“即可。
<?php
/**
* Plugin Name: Siteurls Auto to Baidu
* Description: Execute Siteurls Auto to Baidu tasks on a schedule using WordPress Cron.
* Version: 1.1
* Author: 小崽安
* Author URI: https://bfzw.top
*/
// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// 插件的主要功能代码
class SiteUrlsToBaiduTasks {
public function __construct() {
// 初始化插件
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
add_action( 'init', array( $this, 'autoupload_tasks' ) );
}
public function load_textdomain() {
// 加载插件的本地化文本
load_plugin_textdomain( 'upload-siteurls-task', false, basename( dirname( __FILE__ ) ) . '/languages/' );
}
public function autoupload_tasks() {
// 注册任务到WordPress Cron , “daily”一次/天
if ( ! wp_next_scheduled( 'upload_siteurls_to_baidu_hook' ) ) {
wp_schedule_event( time(), 'daily', 'upload_siteurls_to_baidu_hook' );
}
}
public function do_upload_task() {
// WordPress的根目录
define('ABSPATH', __DIR__ . '/');
// 引入WordPress
require_once(ABSPATH . 'wp-load.php');
// 百度站长平台的API地址
$api = 'http://data.zz.baidu.com/urls?site=https://www.example.com&token=T***4';
// 读取已推送的URL列表
$pushed_urls = file_get_contents(ABSPATH . 'wp-content/plugins/siteurls-autto-baidu/log/urls.txt');
$pushed_urls = explode("\n", trim($pushed_urls));
// 获取所有文章链接
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'post',
'post_status' => 'publish'
));
$urls_to_push = array();
$urls_failed = array();
// 获取当前北京时间的时间戳
date_default_timezone_set('Asia/Shanghai');
$nowTimeUrl = date('Y_m_d_H_i_s', time());
// 遍历所有文章并收集URL
foreach ($posts as $post) {
$url = get_permalink($post->ID);
// 检查URL是否已经被推送过
if (!in_array($url, $pushed_urls)) {
$urls_to_push[] = $url;
}
}
// 限制每天推送的URL数量
$urls_to_push = array_slice($urls_to_push, 0, 10); // 只取前10条
// 如果有URL需要推送
if (!empty($urls_to_push)) {
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls_to_push),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
// 检查推送结果
$result_data = json_decode($result, true);
if (isset($result_data['error'])) {
// 推送失败,记录失败URL到urls_fail.txt
$fail_message = $nowTimeUrl . "_URLs: \n " . implode("\n ", $urls_to_push) . "\nError: " . $result . "\n";
file_put_contents(ABSPATH . 'wp-content/plugins/siteurls-autto-baidu/log/urls_fail.txt', $fail_message, FILE_APPEND);
} elseif (isset($result_data['success'])) {
// 推送成功,记录成功URL到urls.txt
file_put_contents(ABSPATH . 'wp-content/plugins/siteurls-autto-baidu/log/urls.txt', $nowTimeUrl . "\n" . implode("\n", array_merge($urls_to_push)) . "\n" . PHP_EOL, FILE_APPEND);
} else {
// 无法判断推送结果,记录日志
file_put_contents(ABSPATH . 'wp-content/plugins/siteurls-autto-baidu/log/urls_fail.txt', $nowTimeUrl . "\n " . "no_Urls" . "\nError: " . 'result' . "\n", FILE_APPEND);
}
// 关闭cURL资源,并释放系统资源
curl_close($ch);
}
// 打印一条日志消息,以便你知道任务已经执行
error_log( 'My SiteUrls to Baidu Task Executed!' );
}
public function register_hooks() {
// 注册任务执行时的钩子
add_action( 'upload_siteurls_to_baidu_hook', array( $this, 'do_upload_task' ) );
}
}
// 实例化插件类
$upload_siteurls_task = new SiteUrlsToBaiduTasks();
// 注册钩子
$upload_siteurls_task->register_hooks();