使用 python 捕获 API 自动下载文件
Capturing API automatic download file with python
我正在尝试在此使用 api url https://freeapi.robtex.com/pdns/reverse/(ip_address_here) 我是编码新手,所以如果我只是完全使用错误的包,请多多包涵...
当输入 URL 并在末尾附加 IP 地址时,它会自动将 json 响应下载为文件并且不显示任何网页。我想将这个下载的文件保存到一个临时目录,并保留它以便稍后在我的工具中进一步解析。我已尝试使用 request.get、urlopen 和 urllib,但我只得到响应代码 (200) 而不是实际文件。或者它似乎可以正常工作,但网站不会连接/响应我的脚本并且超时。我还在他们的网站上添加了复制的用户代理 headers。主要参数是使用 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()
尝试从基础开始:
import requests
r = requests.get('https://freeapi.robtex.com/pdns/reverse/')
print(r.content)
open('temp.txt', 'wb').write(r.content)
这无需添加 HTTP header。
我正在尝试在此使用 api url https://freeapi.robtex.com/pdns/reverse/(ip_address_here) 我是编码新手,所以如果我只是完全使用错误的包,请多多包涵... 当输入 URL 并在末尾附加 IP 地址时,它会自动将 json 响应下载为文件并且不显示任何网页。我想将这个下载的文件保存到一个临时目录,并保留它以便稍后在我的工具中进一步解析。我已尝试使用 request.get、urlopen 和 urllib,但我只得到响应代码 (200) 而不是实际文件。或者它似乎可以正常工作,但网站不会连接/响应我的脚本并且超时。我还在他们的网站上添加了复制的用户代理 headers。主要参数是使用 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()
尝试从基础开始:
import requests
r = requests.get('https://freeapi.robtex.com/pdns/reverse/')
print(r.content)
open('temp.txt', 'wb').write(r.content)
这无需添加 HTTP header。