• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Yandex API

Rubrika

Member
10.11.2017
14
0
BIT
0
Пытаюсь сделать скрипт для проверки ссылки\домена на бан в яндексе через яндекс safery (API )

С python дружу слабо, раньше были проблемы с многомерными массивами, тут, судя по всему, тоже самое, но только с кортежами,
Собственно, код:
Python:
import requests

url = 'https://sba.yandex.net/v4/threatMatches:find?key=8c34cf8b-c807-48e4-be5d-566a2f7b6d15'

params = {"client": {"clientId": "dieterderouck", "clientVersion": "1.1.1"},
          "threatInfo": {"threatTypes": ["MALWARE", "SOCIAL_ENGINEERING"], "platformTypes": ["WINDOWS"],
                         "threatEntryTypes": ["URL"],
                         "threatEntries": [{"url": "http://malware-driveby.test.safebrowsing.yandex"}]}}

response = requests.post(url, data=params)



print(response)


Ответ всегда 400, токен верный
Подозрения - синтаксис параметров, они 100% неправильно оформлены, не могу толком разобраться со скобками
Ну и еще так и не нашел толком информации про clientId и clientVersion , если первое это имя аккаунта, оно верное, то вот где брать текущую версию - нет вариантов
 
Последнее редактирование:

Sombrero

Green Team
23.09.2019
67
4
BIT
0
Ты отсылаешь данные в виде post , а Яндекс хочет их в виде json .
То есть нужно слать через :
response = requests.post(url, json = params)
либо через
headers = {'content-type' : 'application/json'} response = requests.post(url, data=json.dumps(params) , headers = headers)
Сервер отвечает 200 , хотя один хрен ничего не отдает . Хз в чем там еще ошибка .
 

Rubrika

Member
10.11.2017
14
0
BIT
0
Ты отсылаешь данные в виде post , а Яндекс хочет их в виде json .
То есть нужно слать через :
response = requests.post(url, json = params)
либо через
headers = {'content-type' : 'application/json'} response = requests.post(url, data=json.dumps(params) , headers = headers)
Сервер отвечает 200 , хотя один хрен ничего не отдает . Хз в чем там еще ошибка .
да, разобрался, с json работает, пусть и не совсем корректно, но это уже косяк самого яндекса
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!