【问题标题】:Python: Nessus API not Downloading ReportPython:Nessus API 未下载报告
【发布时间】:2020-08-18 07:23:56
【问题描述】:

我在从 Nessus API 下载报告方面需要帮助。 在当前场景中,该命令运行良好,但不是以 csv 格式下载报告文件,而是将所有输出都扔到控制台中。

如何下​​载并保存文件而不是在控制台上获取输出?

import requests

url = "https://tenable.com/scans/<scan_id>/export/<file_id>/download"

headers = {
    'accept': "application/json",
    'x-apikeys': "accessKey=key;secretKey=key"
}

response = requests.request("GET", url, headers=headers)

print(response.text)

【问题讨论】:

  • 您确定需要将标头设置为accept: application/json 吗?它正在宣传客户会理解的内容,请参阅here

标签: python python-3.x api python-requests


【解决方案1】:

将其保存到这样的文件中:

response = requests.request("GET", url, headers=headers)

with open('file.pdf', 'wb') as f:
    f.write(response.content)

【讨论】:

  • 同意我可以这样保存输出。不发送输出到文件就不能直接下载吗?
  • “直接下载”是什么意思?去哪里?
  • 我的意思是,当我浏览 Nessus API 文档时。首先,您需要定义要下载的文件格式(csv、pdf、html),然后您需要使用此 API 请求下载文件。对于 PDF,我收到 500 错误,但对于 csv,我在控制台中获得输出,而不是 csv 文件下载而不将输出发送到文件。
  • 尚不完全清楚您想要实现的目标。当您想到代码时,“csv文件下载”和“将输出发送到文件”有什么区别?
  • 我希望上面的脚本以我想要的任何受支持的格式下载文件。使用 API 调用下载将为我的文件命名并下载正确格式的文件。但是,当我必须将控制台输出写入文件时。每次我想下载时,我都需要为文件提供一些名称和格式。我希望你明白我的意思,使用 UI 可以正常工作。
猜你喜欢
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
相关资源
最近更新 更多