最近想用Python爬取IBM X-Force的漏洞数据,在发现该网站提供免费的API后,便开始尝试使用该API直接获取数据。
但是在使用API的时候遇到了一个小问题,它提供的使用案例是以Curl命令的格式给出的:

curl -X 'POST' \'https://api.xforce.ibmcloud.com/api/vulnerabilities' \-H 'accept: application/json' \-H 'Content-Type: application/json' \-H 'Authorization: XXXXXXXXXX' \-d '["CVE-2014-2601","CVE-2017-0001"]'

如果直接使用Python的pycurl库来执行Curl命令的话过于麻烦且啰嗦,因此我尝试用Requests库来代替。
这又引出了一个问题,Curl命令的参数和Requests库的参数格式并不一致。我一度放弃了这个方案,直到我看到了StackOverflow上的这个回答:execute-curl-command-within-a-python-script。
该回答推荐了一个工具:curlconverter,可以将Curl命令直接转换为等效的 Python代码,例如,上述Curl命令会被转换为:

import requestsheaders = {'accept': 'application/json',# Already added when you pass json=# 'Content-Type': 'application/json','Authorization': 'XXXXXXXXXX',
}json_data = ['CVE-2014-2601','CVE-2017-0001',
]response = requests.post('https://api.xforce.ibmcloud.com/api/vulnerabilities', headers=headers, json=json_data)

这完美的解决了我的问题。
该工具同时还可以将Curl命令转换为Java、C、R等语言的代码,源码托管在GitHub中。

Python执行Curl命令相关推荐

  1. python怎样执行curl命令_如何使用python执行curl命令

    如何使用python执行curl命令 我想在python中执行curl命令. 通常,我只需要在终端输入命令并按回车键. 但是,我不知道它在python中是如何工作的. 该命令如下所示: curl -d ...

  2. 使用python执行curl命令

    https://www.cnblogs.com/skzxc/p/12688423.html

  3. python执行linux命令返回结果_Python中调用Linux命令并获取返回值

    方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于she ...

  4. python执行linux命令返回结果_python执行linux命令的简单示例

    对python执行linux命令的两种方法感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! python执行linux命令有两种方法: 在此以Linux常用的ls命令为例: ...

  5. Python 执行 shell命令 的几个方法小结

    参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...

  6. python执行shell命令行_python执行命令行:python中执行shell命令行read结果

    +++++++++++++++++++++++++++++ python执行shell命令 1 os.system  (只有这个方法是边执行边输出,其他方法是最后一次性输出) 可以返回运行shell命 ...

  7. [转载] python执行shell命令的几种方法

    参考链接: 使用Python执行Shell命令 目前我使用到的python中执行cmd的方式有三种: 1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的 ...

  8. python调用dos命令_基于Python执行dos命令并获取输出的结果

    这篇文章主要介绍了基于Python执行dos命令并获取输出的结果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import os import s ...

  9. Python 执行终端命令

    Python执行终端命令有多种方法. 方法一 使用示例: import os os.system('ls') 该方法无法输出命令执行结果 方法二 使用示例: import os res = os.po ...

最新文章

  1. 【每日一算法】罗马数字转整数
  2. C++_类和动态内存分配2-改进后的String类
  3. spring中的jdk动态代理(代码步骤)
  4. linux查看网速工具,ubuntu查看网速的工具
  5. 有意思的C语言运算符
  6. 用递归方式判断字符串是否是回文
  7. ASP.NET数据库操作层的设计
  8. Python base64编码解码
  9. 如何在Ubuntu 18.04上安装Django
  10. Hadoop Exception in createBlockOutputStream
  11. 在c语言程序中可把整型数,C语言程序设计(2).doc
  12. gridview无法显示完整
  13. 电脑上的字体安装教程
  14. opencms Log研究
  15. 泛型编程 - 学习/实践
  16. ftp服务器软件 性能对比,常用ftp服务器软件介绍
  17. 新猿木子李:0基础学python培训教程 html简介
  18. windows 2008 R2 AD域控制器密码破解
  19. LintCode 数字组合 题解
  20. Python的.py与Cython的.pxd.pyx.pyd 文件格式之间的主要区别

热门文章

  1. matlab 序贯相似性,序贯相似性检测算法(SSDA)实现图像匹配
  2. php如何设置页面布局,excel页面布局怎么调整
  3. Android 9无法通过反射获取系统属性
  4. L1-002 打印沙漏 (20 分)(模拟,规律,二分)
  5. 中国航空煤油行业供需情况分析与十四五投资战略规划研究报告2022年版
  6. 组策略学习-统一映射网络驱动盘
  7. 如何接入一个全平台实时互动白板
  8. 【答读者问46】一场由夏普率引发的乱斗(backtrader,pyfolio和聚宽都是怎么计算夏普率的?)
  9. vue中 表头 th 合并单元格,且表格列数不定的动态渲染方法
  10. 【零基础Eviews实例】00了解多元线性回归模型常见检验