如何从API Explorer中检索数据?

问题描述:

我的问题更多的是在“概念”方面,因为我还没有任何代码可以显示。我基本上可以访问一个网站的API资源管理器,但是当我在API资源管理器中放置一个特定的URL时检索到的信息与我打开一个具有相同URL的网页的HTML信息不一样“检查”了这些要素。我诚实地失去了如何检索我需要的数据,因为它们只存在于API Explorer中,但无法通过网络抓取访问。如何从API Explorer中检索数据?

这里向你展示我的意思的例子:

API浏览器链接:https://platform.worldcat.org/api-explorer/apis/worldcatidentities/identity/Read

和特定的URL请求为:http://www.worldcat.org/identities/lccn-n80126307/

如果我把URL(http://www.worldcat.org/identities/lccn-n80126307/)我自己和“检查元素”,这条信息:

html version

不具有所有的相同数据:

API Explorer

例如,语言计数,audLevel,oclcnum和其他许多人都没有在HTML版本存在,但在API浏览器和与其他作者,流派计数只存在于API Explorer中。

我知道一个是在xml中,另一个是在html中,所以这就是为什么两个版本中的数据不一样?不管是什么原因,我能做些什么来检索只存在于API Explorer中的数据? (如流派数,audLevel,oclcnum等)

任何见识都会非常有帮助。

对于不显示所有数据的站点来说,这并不罕见,这些数据位于基础json/xml中。这些东西往往会保存有趣的内容,而不会在现场任何地方显示。

在这种情况下,服务器给你,你要求什么。如果你要使用Python来获取数据,那么你真正需要做的就是在你的头文件中指定你所追求的内容。如果你没有在这个网站上做到这一点,你会得到html的东西。

如果你喜欢这个,你会得到XML数据,你有兴趣:

import requests 
import xml.dom.minidom 

url = 'https://www.worldcat.org/identities/lccn-n80126307/' 
r = requests.get(url, headers={'Accept': 'application/json'}) 

# a couple of lines for printing the xml pretty 
xml = xml.dom.minidom.parseString(r.text) 
pretty_xml_as_string = xml.toprettyxml() 
print(pretty_xml_as_string) 

然后,所有你需要做的是提取内容,你后。这可以通过许多方式完成。让我知道这是否有助于你。

+0

非常感谢,真的有帮助!出于好奇,你如何获得输出使用换行符?我的输出在一行中包含所有的xml。此外,还有什么可能的方式来提取内容?我见过其他帖子提示fromstring(xml).find(),但我不确定它是如何发生的。 –

+0

我用两行来更新了答案,以便打印出漂亮的xml。如果您在提取数据方面需要帮助,请查看已在SO上就此问题提供的许多答案。如果这些都不能帮助您进一步开启一个新的问题,那么您将展示您的尝试。我确信,一旦你证明你实际上已经付出了努力,有人会从那里帮助你。 – jlaur