Захват API автоматической загрузки файла с Python - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь использовать API по этому адресу https://freeapi.robtex.com/pdns/reverse/(ip_address_here) Я новичок в кодировании, так что, если я просто полностью использую неправильные пакеты, потерпите меня ... При вводе URL с добавленным в конце IP-адресом он автоматически загружает ответ json в виде файла и не отображает веб-страницу. Я хотел бы сохранить этот загруженный файл во временный каталог и сохранить его для дальнейшего анализа в моем инструменте позже. Я пытался использовать request.get, urlopen и urllib, но я получаю только код ответа (200), а не фактический файл. Или, кажется, работает, но веб-сайт не будет подключаться / отвечать на мой сценарий, и время ожидания истекло. Я также добавил заголовки пользовательских агентов, скопированные, когда я был на их сайте. Основным аргументом является использование argparse, поэтому его можно использовать как инструмент командной строки. Функция getData - это место, где я пытаюсь получить файл для загрузки.

def getData(x):
    pdns_url="https://freeapi.robtex.com/pdns/reverse/"+x
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
       AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 
       Safari/537.36'}
    #req=urllib.request.Request(pdns_url)
    #resp=urllib.request.urlopen(pdns_url)
    resp= requests.get(pdns_url, headers=headers)
    respData=resp.read()
    return respData

def Main():
    parser = argparse.ArgumentParser()
    parser.add_argument("url", help="The IP to lookup.", type=str)
    parser.add_argument("-o", "--output", help="Output results to a file.", 
       action="store_true")
    args=parser.parse_args()

    result=getData(args.url)
    if args.output:
        f=open("Dns_Lookup", "a")
        f.write(str(result))
    else:
        print(str(args.url))

    if __name__=='__main__':
        Main()

1 Ответ

0 голосов
/ 03 июля 2018

Попробуйте начать с основ:

import requests

r = requests.get('https://freeapi.robtex.com/pdns/reverse/')
print(r.content)
open('temp.txt', 'wb').write(r.content)

Это работает без добавления заголовка HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...