Python Scrapy-尝试从RESTful API获取JSON响应

Python Scrapy-尝试从RESTful API获取JSON响应,python,json,rest,scrapy,Python,Json,Rest,Scrapy,我想从我查询的RESTful API中获取JSON响应。我输入了URL,但得到的只是一个HTML响应,而不是JSON。如果我可以直接得到JSON响应,而不必解析所有HTML,那就太好了。有办法做到这一点吗 注意:当我把URL放在浏览器中时,它会以一种漂亮的、可折叠的格式为我提供包含JSON数据的HTML站点。当我使用Python请求模块发送GET请求时,它会给我JSON数据。如何在Scrapy中实现相同的功能?在浏览器中打开JSON文件,右键单击它,然后选择“检查”。查看包含它的标签;它可以直接

我想从我查询的RESTful API中获取JSON响应。我输入了URL,但得到的只是一个HTML响应,而不是JSON。如果我可以直接得到JSON响应,而不必解析所有HTML,那就太好了。有办法做到这一点吗


注意:当我把URL放在浏览器中时,它会以一种漂亮的、可折叠的格式为我提供包含JSON数据的HTML站点。当我使用Python请求模块发送GET请求时,它会给我JSON数据。如何在Scrapy中实现相同的功能?

在浏览器中打开JSON文件,右键单击它,然后选择“检查”。查看包含它的标签;它可以直接位于
中,也可以位于另一个标记中

让我们假设它位于
标记中;这是代码。(如果你能给我们寄一份样品页,那会很有帮助。)

1-提取
标记(或任何包含它的标记)之间的JSON部分

2-使用条带移除额外空间

3-使用ast.literal\u eval将unicode转换为字典

4-使用get(键)从字典中提取要提取的内容

注意:您可以将多个步骤合并为一个步骤,但为了便于解释,我将它们分开

这里我使用了常规的dictionary get(),但是如果你想使用json库,你必须导入它,然后使用dumps()函数从字典中创建一个json格式的字符串,然后从这里继续

import ast

# Scrapy code here

text = response.xpath('//script/text()').extract_first()
text = text.strip()
text = ast.literal_eval(text)

value = text.get("key")