如何从API资源管理器中检索数据?

2024-04-25 08:56:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题更多的是在“概念”方面,因为我还没有任何代码要显示。我基本上可以访问一个网站的API资源管理器,但是当我在API资源管理器中放置一个特定的url时检索到的信息与我打开一个具有相同url的网页并“检查”元素时得到的html信息不同。我真的不知道如何检索我需要的数据,因为它们只存在于API资源管理器中,但不能通过web抓取访问。你知道吗

下面是一个例子来告诉你我的意思:

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/)和“inspect element”,则以下信息:

html version

不是所有的数据都与:

API Explorer

例如,language count、audLevel、oclcnum和许多其他内容在html版本中不存在,但在API资源管理器中存在,对于其他作者,genres count只存在于API资源管理器中。你知道吗

我意识到其中一个是xml,另一个是html,所以这就是为什么两个版本中的数据不一样?不管是什么原因,我能做些什么来检索API资源管理器中的数据?(如流派计数、audLevel、oclcnum等)

任何见解都会很有帮助。你知道吗


Tags: 数据orgapi信息httpurlhtmlwww
1条回答
网友
1楼 · 发布于 2024-04-25 08:56:11

不显示所有数据的站点并不罕见,这些数据都在底层的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)

那么你所要做的就是提取内容,你就是在追求。这可以通过多种方式实现。如果这对你有帮助,请告诉我。你知道吗

相关问题 更多 >