Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программа не возвращает заданных данных.

Jessy Pinkman Ученик (115), на голосовании 1 месяц назад
Я написал простенькую программу для пробива номера, но при вводе любого номера программа возвращает мне "Информация не найдена", хоть на сайте который используется в качестве api она есть. Что делать?

Вот код:
import requests

def phone_osint(phone: str):
try:
url = f"https://htmlweb.ru/geo/api.php?json&telcod={phone_number}"
res = requests.get(url, timeout=10)
data = res.json()

if '0' in data:
info = data['0']
country = data.get("country", {}).get("name", "Не найдено")
okrug = info.get("okrug", "Не найдено")
region = data.get("region", {}).get("name", "Не найдено")
city = info.get("city", "Не найдено")
rajon = info.get("rajon", "Не найдено")
latitude = info.get("latitude", "Не найдено")
longitude = info.get("longitude", "Не найдено")
oper = info.get("oper", "Не найдено")
time_zone = info.get("time_zone", "Не найдено")

print(f'''
Страна: {country}
Округ: {okrug}
Регион: {region}
Город: {city}
Район: {rajon}
Широта: {latitude}
Долгота: {longitude}
Оператор: {oper}
Тайм зона: {time_zone}
''')
else:
print(f"Информация о номере не найдена.")

except Exception as e:
print(f'В ходе сканирования произошла ошибка. ')
print(e)

if __name__ == "__main__":
phone_number = input("Введите номер телефона: ")
phone_osint(phone_number)

input()
Голосование за лучший ответ
Обэмэ Мудрец (14068) 2 месяца назад
 def phone_osint(phone: str): 
try:
url = f"https://htmlweb.ru/geo/api.php?json&telcod={phone_number}"
Вот же мамкины взломатары
Ты в функцию передаешь что?
И какой phone_number в ней используешь?
Естественно, твоя программа ничего не возвращает, потому что функция не понимаю, что за phone_number. Ты его нигде в ней не объявил.
Измени phone_number на phone, потому что именно phone ты зарезервировал как аргумент для передачи.
Простой пример:
 int function abs(int a)
{
cout << b << endl;
}
Вот посмотри и скажи, что такое b в этом примере?
Jessy PinkmanУченик (115) 2 месяца назад
не помогло
Обэмэ Мудрец (14068) Jessy Pinkman, ожидаемо Причем тут объявил и передал? Ты вообще имеешь представление, что такое глобальные и локальные области видимости и что такое аргумент в функции? Я тебе привел пример. И я не уверен, правильно ли ты передаешь ее, как строку
Jessy PinkmanУченик (115) 2 месяца назад
а функцию как раз таки объявил. в последних строчках присимотрись внимательнее
Mr Undexpented Мастер (1875) 2 месяца назад
import requests

def phone_osint(phone: str):
try:
url = f"https://htmlweb.ru/geo/api.php?json&telcod={phone}"
res = requests.get(url, timeout=10)
data = res.json()

# Для отладки выведем полный ответ от API
print("Полученные данные от API:", data)

if data and 'country' in data:
country = data.get("country", {}).get("name", "Не найдено")
region = data.get("region", {}).get("name", "Не найдено")
okrug = data.get("0", {}).get("okrug", "Не найдено")
city = data.get("0", {}).get("city", "Не найдено")
rajon = data.get("0", {}).get("rajon", "Не найдено")
latitude = data.get("0", {}).get("latitude", "Не найдено")
longitude = data.get("0", {}).get("longitude", "Не найдено")
oper = data.get("0", {}).get("oper", "Не найдено")
time_zone = data.get("0", {}).get("time_zone", "Не найдено")

print(f'''
Страна: {country}
Округ: {okrug}
Регион: {region}
Город: {city}
Район: {rajon}
Широта: {latitude}
Долгота: {longitude}
Оператор: {oper}
Тайм зона: {time_zone}
''')
else:
print(f"Информация о номере не найдена.")

except Exception as e:
print(f'В ходе сканирования произошла ошибка: {e}')

if __name__ == "__main__":
phone_number = input("Введите номер телефона: ")
phone_osint(phone_number)


Добавлен вывод данных, которые приходят от API (print("Полученные данные от API:", data)), чтобы проверить, что именно возвращает API.
Jessy PinkmanУченик (115) 2 месяца назад
трабл в апи значит
Терр Онтал Мудрец (12816) 2 месяца назад
И перед тем как код писать ты api даже не проверил курлом простейшим, так?
Похожие вопросы