Как указать заголовки аутентификации HTTP при использовании rdflib?

В документах для rdflib показан пример загрузки данных из удаленного источника.

from rdflib import Graph

g = Graph()
g.parse("http://bigasterisk.com/foaf.rdf")
len(g)
# prints 42

Я пытаюсь сделать это с источником, для которого требуется заголовок авторизации. Как мне указать rdflib использовать добавление пользовательского заголовка к его HTTP-вызовам?


person jshen    schedule 19.04.2018    source источник


Ответы (1)


нет способа добавить дополнительные заголовки без прибегая к хрупким хакам. Однако Graph.parse принимает не только URL-адреса, поэтому вы можете использовать библиотеку, например запросы, чтобы сделать запрос:

import requests
from rdflib import Graph

response = requests.get('http://bigasterisk.com/foaf.rdf', auth=('user', 'pass'))
response.raise_for_status()  # raise an error on unsuccessful status codes

g = Graph()
g.parse(data=response.text)
person Blender    schedule 19.04.2018
comment
спасибо, я надеялся, что rdflib сможет его поддерживать, потому что моей конечной целью является использование API связанных фрагментов данных (linkeddatafragments.org/software), чтобы я мог поместить запрос sparql в rdflib, который затем транслировал бы его в соответствующие вызовы API для получения троек. Вот пример библиотеки: github.com/pchampin/hydra-py - person jshen; 20.04.2018