如何在 python 中使用带有 dokuwiki 模块的代理服务器

How to use proxy server with dokuwiki module in python

我正在尝试编写一个应用程序来简化我的 HP 磁盘更换过程。

我们使用 dokuwiki 来跟踪案例,我想用 python 实现它,以便在更换磁盘时自动完成。不幸的是,我们必须使用代理才能访问 dokuwiki link,而我在 python.

中找不到使用它的方法

因此,当我尝试 运行 python IDE 中的以下内容时,即使我也在 venv 中设置了 http/https_proxy,我总是会收到错误消息.

在 [20] 中:wiki = dokuwiki.DokuWiki('https://172.xx.xx.xx/doku.php?id=xx:xx', 'username', 'password')

我希望 运行 执行命令时不会出现错误,但我得到以下信息:

SSLCertVerificationError Traceback(最后一次调用) 在 ----> 1 个维基 = dokuwiki.DokuWiki('https://172.xx.xx.xx/doku.php?id=xx:xx', 'username', 'password') …… ......

.....

SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:自签名证书 (_ssl.c:1056)

SSL certificates 是根据 FQDN(完全限定域名)颁发和验证的,因此如果您将 httpsIP address 一起使用,则证书不能验证。如果可以,请通过 FQDN 访问您的 wiki 并确保证书有效。

否则您可以禁用 (这并不是一个很好的安全措施)。由于额外的参数被直接传递给 xmlrpc.client.ServerProxy 对象,所以像这样的东西应该可以工作:

import dokuwiki
import ssl

wiki = dokuwiki.DokuWiki('https://172.xx.xx.xx', 'username', 'password', context=ssl._create_unverified_context())

注意: dokuwiki 模块还附加了 XMLRPC URI (/lib/exe/xmlrpc.php) 本身,因此 /doku.php?id=xx:xx 部分不是必要的。