RDFLib 的 URLInputSource 通过 urllib.request 下载。在首次使用该 URL 加载器之前,先配置 urllib 的常规代理环境:

import os
from rdflib import Graph

os.environ['http_proxy'] = 'http://proxy.example:8080'
os.environ['https_proxy'] = 'http://proxy.example:8080'

graph = Graph()
graph.parse('https://data.example/catalog.ttl', format='turtle')

这两个变量指向同一个 HTTP 代理监听器。它们分别覆盖相应的目标协议,包括通过 HTTPS 获取的 RDF 文档。对于位于允许的公共代理路由上的公共 RDF 源,HTTP 代理列表为这些环境变量 URL 提供候选。

如果进程已经安装或构造了自定义的 urllib opener,请检查它的代理处理器。之后的环境变更不一定会重建该处理器。

当另一次下载失败时,使用 traceback 中指定的加载器。RDF 插件和应用封装可能拥有额外的网络路径。另一次 Requests 调用上的 proxy 参数只作用于那次调用,而不会作用于 RDFLib 的 urllib 加载器。

相关文章