【发布时间】:2020-06-09 01:44:01
【问题描述】:
我有一个问题,就像我在主题中提到的那样。试图获取网站上所有 CVE 的名称及其描述。我想使用 for 循环迭代 JSON 响应并将所有内容发送到数据库。代码:
r = requests.get('https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=microsoft')
r.headers['content-type']
打印出标题后,它显示响应是 text/html,我无法将其转换为 JSON。我试图像往常一样按照使用r.json() 的文档进行操作。但是在运行代码后我得到这样的错误:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我也试过json.dumps(),可惜没有解决问题。我花了几个小时寻找解决方案,但找不到任何可以帮助我将此响应转换为 JSON 的东西。 这个网站和这个回复是否有可能?我可以做不同的事情吗?有没有其他好的解决方案可以实现我的目标?如果我写了一些不能理解的东西,请纠正我或问我一个问题。
非常感谢您提供任何帮助。 :-)
【问题讨论】:
-
为什么你认为它是 JSON 格式的?
-
此 API 的响应不是 json,而是
Html你需要网络抓取来完成它。 -
你说的网页抓取是什么意思?
标签: python json python-requests