Update spider_notify.py

hjn_branch
plqo32bax 3 months ago
parent 202473ffc0
commit bbdb2bed3f

@ -1,21 +1,55 @@
import logging
import requests
from django.conf import settings
# 获取当前模块的日志记录器,用于记录日志信息
logger = logging.getLogger(__name__)
class SpiderNotify():
"""蜘蛛通知类用于向搜索引擎推送URL帮助搜索引擎发现和收录网站内容"""
@staticmethod
def baidu_notify(urls):
"""
向百度搜索引擎推送URL促进网站收录
Args:
urls (list): 需要推送的URL列表通常为新发布或更新的文章链接
Note:
使用百度站长平台的API接口进行URL推送
推送格式为每行一个URL的纯文本数据
"""
try:
# 将URL列表转换为百度API要求的格式每行一个URL的字符串
# 例如:['http://example.com/1', 'http://example.com/2'] -> "http://example.com/1\nhttp://example.com/2"
data = '\n'.join(urls)
# 发送POST请求到百度推送接口[8,9](@ref)
# 使用Django设置中配置的百度推送URL避免硬编码
result = requests.post(settings.BAIDU_NOTIFY_URL, data=data)
# 记录推送结果到日志,便于监控和调试[6,7](@ref)
logger.info(result.text)
except Exception as e:
# 捕获并记录所有可能的异常,如网络错误、配置错误等
# 使用错误级别日志记录异常信息[6](@ref)
logger.error(e)
@staticmethod
def notify(url):
SpiderNotify.baidu_notify(url)
"""
推送URL的便捷方法可以扩展支持多个搜索引擎
Args:
url (str or list): 单个URL字符串或URL列表
"""
# 如果传入的是单个URL转换为列表形式
if isinstance(url, str):
url = [url]
# 调用百度推送方法
# 这里的设计便于未来扩展其他搜索引擎的推送功能
SpiderNotify.baidu_notify(url)
Loading…
Cancel
Save