You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Custom Tkinter的WordPress自动发博工具遇ssl.SSLEOFError求助

WordPress自动发布工具SSL错误解决方案

针对你遇到的ssl.SSLEOFError: EOF occurred in violation of protocol错误,结合代码和错误栈,给出以下针对性解决思路:

1. 不要复用单个WordPress XML-RPC Client实例

你的代码在循环外创建了client实例,多次调用client.call()时,底层XML-RPC的长连接可能被服务器主动断开,导致SSL连接中断。

修改方案:将Client实例的创建放到循环内部,每次发布文章都新建连接:

for i, title in enumerate(titles):
    # 每次循环新建WordPress Client
    client = Client(url, username, password)
    
    # 后续生成内容、上传图片、发布文章的代码...
    
    # 发布完成后显式关闭连接(可选)
    client.server.close()

2. 增加请求间隔,规避频率限制

连续快速的API请求可能触发WordPress的反爬策略,导致服务器强制断开连接。除了现有针对Pexels的time.sleep(1),在发布文章后增加更长的间隔:

# 发布文章后添加间隔
post_id = client.call(NewPost(post))
print(f"Post '{title}' created successfully with ID: {post_id}")
time.sleep(3)  # 增加3秒间隔,可根据情况调整

3. 自定义XML-RPC Transport,修复SSL兼容性问题

部分服务器的SSL配置与Python默认xmlrpc.client的Transport不兼容,可自定义Transport并指定SSL上下文:

from xmlrpc.client import SafeTransport
import ssl

class CustomSafeTransport(SafeTransport):
    def __init__(self, ssl_context=None, *args, **kwargs):
        self._ssl_context = ssl_context
        super().__init__(*args, **kwargs)

    def make_connection(self, host):
        conn = super().make_connection(host)
        if self._ssl_context:
            conn.context = self._ssl_context
        return conn

# 创建自定义SSL上下文
ssl_context = ssl.create_default_context()
ssl_context.set_ciphers('DEFAULT@SECLEVEL=1')  # 降低安全级别适配旧服务器

# 使用自定义Transport创建Client
client = Client(url, username, password, transport=CustomSafeTransport(ssl_context=ssl_context))

代码中其他需要修正的小问题

  • 循环中enumerate的i被重新赋值为0,会导致后续文件名生成错误,建议重命名内层循环变量:
    # 将内层的i改为idx
    idx = 0
    v_new = []
    for kw, v in keywords:
        v_new.append(v)
        idx += 1
        image_title = kw
        break
    
  • image_path重复赋值,去掉冗余的赋值语句:
    image_path = f"{idx+1}_{keywords[0]}_{keywords[1]}.jpg"
    

内容的提问来源于stack exchange,提问作者AIT SIDI LAHCEN KARIM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 03:53:16