From ae31a3a99b311bb8eb002f92e64b39780ef10c5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E9=9B=A8=E8=8F=B2?= <2574550132@qq.com> Date: Sun, 9 Nov 2025 21:59:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20spider=5Fnotify.py=20?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- djangoblog/spider_notify.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/djangoblog/spider_notify.py b/djangoblog/spider_notify.py index 7b909e96..c8f9f8c1 100644 --- a/djangoblog/spider_notify.py +++ b/djangoblog/spider_notify.py @@ -3,19 +3,43 @@ import logging import requests from django.conf import settings +# 创建当前模块的日志记录器,用于记录通知相关的日志信息 logger = logging.getLogger(__name__) class SpiderNotify(): + """ + 搜索引擎爬虫通知类 + 用于向搜索引擎(目前支持百度)提交网站URL,告知内容更新,便于爬虫抓取 + """ + @staticmethod def baidu_notify(urls): + """ + 向百度搜索引擎提交URL的静态方法 + 通过百度链接提交通知接口,告知百度新增/更新的页面URL + + Args: + urls (list): 需要提交的URL列表,每个元素为完整的页面URL字符串 + """ try: + # 将URL列表用换行符拼接,符合百度接口的数据格式要求 data = '\n'.join(urls) + # 向百度通知接口发送POST请求,提交URL数据 result = requests.post(settings.BAIDU_NOTIFY_URL, data=data) + # 记录接口返回的响应信息(日志级别:INFO) logger.info(result.text) except Exception as e: + # 捕获所有异常并记录错误信息(日志级别:ERROR) logger.error(e) @staticmethod def notify(url): - SpiderNotify.baidu_notify(url) + """ + 通用通知入口静态方法 + 统一调用百度通知方法,便于后续扩展支持其他搜索引擎 + + Args: + url (list): 需要提交的URL列表,与baidu_notify方法的urls参数格式一致 + """ + SpiderNotify.baidu_notify(url) \ No newline at end of file