#python #http #automation
#python #http #автоматизация
Вопрос:
Я пытаюсь написать скрипт на Python для подключения к https://haveibeenpwned.com / API , чтобы просмотреть список идентификаторов электронной почты на предмет любого нарушения.
Я начинаю просто строить на нем, но он не работает.
Ниже приведен мой текущий код :
import requests
import json
headers = {}
headers['hibp-api-key']='xxx'# key removed
headers['content-type']= 'application/json'
headers['User-Agent']='testingaccountbreach'
url ='https://haveibeenpwned.com/api/v3/breachedaccount/account' # email should be URL encoded, email was removed for privacy
response = requests.get(url)
response.status_code
Приведенный выше код возвращает 401 ответ сервера. Затем я попробовал простой HTTP-запрос, но все равно не удалось, в то время как интеграция api с virustotal.com отлично работает со скриптом Python, и я могу подключаться к другим веб-сайтам.
url ='https://haveibeenpwned.com/'
response = requests.get(url)
print(response)
Я пытаюсь работать над этим уже более недели, поэтому был бы признателен за любой ценный вклад или рекомендации .
С уважением,
Ответ №1:
Поэтому я недавно работал и над этим, пытаясь создать систему автоматизации для компании, в которой я работаю, чтобы использовать вызовы Python в HIBP и предоставлять информацию менеджеру документов. У меня было так много проблем с тем, чтобы заставить это работать с нуля с помощью предоставленных скриптов Python, которые люди разработали с помощью HIBP (см.: https://haveibeenpwned.com/API/Consumers ). Затем я наткнулся на ваш пост и код и попытался посмотреть, смогу ли я заставить его работать, но я продолжал получать тот же 401, что и вы. Затем я вспомнил, как мой друг рассказывал о Postman. Если вы не знакомы с ним, я настоятельно рекомендую его, потому что вы можете настроить запросы get с помощью ключей API и определенных строк URL или заголовков и выводить код на множестве языков программирования. Это так же просто, как подключить данные, а также просмотреть и скопировать код для разных языков, включая Python. Я протестировал его и получил идеальный ответ в моем скрипте на Python. Итак, я опубликовал ниже то, что должно работать лучше для вас. Убедитесь, что <> заполнено правильной информацией.
import requests
url = "https://haveibeenpwned.com/api/v3/breachedaccount/<account>"
hibp_api_key = '<key>'
payload={}
headers = {
'hibp-api-key': str(hibp_api_key),
'format': 'application/json',
'timeout': '2.5',
'HIBP': str(hibp_api_key),
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)