python - 使用 python 从 XML 中抓取数据
问题描述
我需要的是每条记录的“标题”和“GetCapabilitiesUrl”。我尝试过使用 BeautifulSoup,但找不到获取所需数据的正确方法。
有人知道如何进行吗?
谢谢。
解决方案
您发布的链接看起来像 JSON 文件,而不是 XML 文件。您可以在这里看到不同之处。您可以使用json
python 中的模块来解析这些数据。
从网站获取包含数据的字符串后,您可以使用json.loads()
将包含 JSON 对象的字符串转换为 python 对象。
下面的代码片段会将所有标题放在一个名为的变量中titles
,并将一个 urls 放在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 查看器来帮助您找出字典和列表的元素。
推荐阅读
- c# - 如何在服务器端 blazor 中捕获 window.onscroll 以模仿引导滚动间谍
- python - 如何在 python 数据表 h2oai 中删除重复项
- visual-studio-code - VS Code 标尺线错误
- swift - SwiftUI 如何获取动态颜色?
- pyspark - 将镶木地板转换为 json 以进行 dynamodb 导入
- .htaccess - 如何使用 .htaccess 重定向(重定向,而不是重写)
- sql - 从 QlikView 到 SQL 的 ODBC 在*第一次尝试时失败*
- windows-10 - 如何修复“0”不被识别为内部或外部命令可运行程序或批处理文件
- javascript - 添加两个持续时间值
- java - 如何在 selenium web 驱动程序中聚焦对象?