API: вызов URL с использованием curl в Python - PullRequest
1 голос
/ 04 ноября 2019

Я пытаюсь использовать службу сокращения ссылок в моем скрипте Python, но их документация по API находится в JSON (который вызывает URL с помощью curl). Я новичок, поэтому я не знал, как это реализовать.

Ответы [ 3 ]

0 голосов
/ 04 ноября 2019

Учитывая самый первый пример предоставленной документации, вы можете просто использовать модуль requests следующим образом:

import requests

data = '{"username":"<Username or email>","password":"<Password>"}' #equal to: -d '{"url":"<Some URL>"}'

response = requests.get('https://www.capsulink.com/api/login', data=data)

Все остальное можно построить из этого.

Редактировать

Запрос сокращенной ссылки с помощью requests:

import requests

header = {"Api-Key": "<Some API key>"} #equal to: -H 'Api-Key: <Some API key>'

data = '{"url": "<Some URL>"}' #equal to: -d '{"url":"<Some URL>"}'

response = requests.get('https://www.capsulink.com/api/capsulate', headers=header, data=data)

Просто замените "<Some API key>" на нужный вам ключ API и "<Some URL>" на соответствующий URL-адрес, которым вы являетесь. интересует.

0 голосов
/ 04 ноября 2019

Вы можете использовать модуль Python Request (https://github.com/psf/requests/), чтобы помочь вам с запросом API. Его легко и быстро реализовать.

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}

См. Определение модуля здесь: https://requests.kennethreitz.org/en/master/

0 голосов
/ 04 ноября 2019

Вы можете использовать очень популярную библиотеку Python под названием запросы. Здесь - официальная документация с примерами.

>>> import requests

>>> r = requests.get('https://api.github.com/events')
>>> r.json()
[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...