用python从XML中抓取数据



我想从https://kartkatalog.geonorge.no/api/search?limit=10000&text=&facets[0]名称=类型&facets[0]值=软件&mediatype=xml

我需要的是";标题";以及";GetCapabilitiesUrl"每个记录。我试过玩BeautifulSoup,但我找不到正确的方法来获得我想要的数据。

有人知道怎么做吗?

谢谢。

您发布的链接看起来像JSON文件,而不是XML文件。你可以在这里看到区别。您可以使用python中的json模块来解析这些数据。

一旦您从网站获得了一个包含数据的字符串,就可以使用json.loads()将包含JSON对象的字符串转换为python对象。

下面的代码片段将把所有标题放在一个名为titles的变量中,并将一个url放在urls

import json
import urllib.request
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
raw_json_string = urllib.request.urlopen("https://kartkatalog.geonorge.no/api/search?limit=10000&text=&facets%5B0%5Dname=type&facets%5B0%5Dvalue=software&mediatype=xml").read()
json_object = json.loads(raw_json_string)
titles = []
urls = []
for record in json_object["Results"]:
titles.append(record["Title"])
try:
urls.append(record["GetCapabilitiesUrl"])
except:
pass

在编写代码时,您可以使用在线JSON查看器来帮助您了解字典和列表的元素。

最新更新