From 3608f14abe5fc0ece1e916a0574c354376cdfcfa Mon Sep 17 00:00:00 2001 From: plhw57tbe <2723863608@qq.com> Date: Sun, 19 Oct 2025 23:28:51 +0800 Subject: [PATCH] Update spider_notify.py --- .../djangoblog/spider_notify.py | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/DjangoBlog-master/djangoblog/spider_notify.py b/src/DjangoBlog-master/djangoblog/spider_notify.py index 7b909e9..4d6d1cd 100644 --- a/src/DjangoBlog-master/djangoblog/spider_notify.py +++ b/src/DjangoBlog-master/djangoblog/spider_notify.py @@ -1,21 +1,43 @@ +# 导入日志模块:记录推送过程的成功信息与错误,便于排查问题 import logging - +# 导入 HTTP 请求库:用于向百度搜索引擎接口发送 POST 请求 import requests +# 导入 Django 项目配置:获取百度主动推送的接口 URL(从 settings.py 读取) from django.conf import settings +# 初始化日志对象:指定日志归属为当前模块,便于区分不同模块的日志 logger = logging.getLogger(__name__) +# 搜索引擎推送工具类:封装向百度等搜索引擎主动提交页面的逻辑 class SpiderNotify(): @staticmethod def baidu_notify(urls): + """ + 向百度搜索引擎主动推送页面(基于百度站长平台的“链接提交”接口) + 目的:让百度快速发现新页面,缩短收录周期(提升 SEO 效率) + + Args: + urls: 待推送的 URL 列表(如 ['https://xxx.com/article/1/', 'https://xxx.com/article/2/']) + """ try: + # 格式化请求数据:百度接口要求 URL 以换行符(\n)分隔,拼接成字符串 data = '\n'.join(urls) + # 发送 POST 请求:调用 settings 中配置的百度推送接口 URL result = requests.post(settings.BAIDU_NOTIFY_URL, data=data) + # 记录推送结果:将百度返回的响应文本(如成功/失败数量)写入日志 logger.info(result.text) except Exception as e: + # 捕获异常(如网络错误、接口超时等),记录错误信息到日志 logger.error(e) @staticmethod def notify(url): - SpiderNotify.baidu_notify(url) + """ + 通用推送方法:统一入口,当前仅调用百度推送(可扩展支持其他搜索引擎) + + Args: + url: 待推送的 URL(支持单个 URL 或 URL 列表,此处兼容百度推送的列表格式) + """ + # 调用百度推送方法,实现页面提交 + SpiderNotify.baidu_notify(url) \ No newline at end of file