0

我正在尝试在此网址https://freeapi.robtex.com/pdns/reverse/(ip_address_here)上使用 api我是编码新手,所以如果我只是完全使用错误的软件包,我会忍受......当输入带有 IP 地址的 URL 时,它会自动将 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()
4

1 回答 1

0

尝试从基础开始:

import requests

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

这无需添加 HTTP 标头即可工作。

于 2018-07-03T14:50:38.910 回答