首页 > 解决方案 > 我可以使用 Beautiful Soup 从 Web 上获取使用 HTML 显示的 XML 文件吗?

问题描述

我在这里有一个包含 XML 文件内容的 url,但从技术上讲,它本身并不是一个 XML 文件:http: //auxopsweb2.oit.nd.edu/DiningMenus/api/Menus/46

我想在 python 中使用 Beautiful Soup 库来尝试从 XML 内容中提取一些数据。但是,我只知道如何将数据作为显示页面的 HTML 提取:

import requests
from bs4 import BeautifulSoup as bs

res = requests.get("http://auxopsweb2.oit.nd.edu/DiningMenus/api/Menus/46")
res.raise_for_status()
soup = bs(res.text , 'html.parser')

这使得搜索变得困难,因为所有数据实际上都是未标记的<span>元素。有没有办法绕过 HTML 并直接提取 XML 内容?我以前从未真正与 BeautifulSoup 合作过,如果我的问题是无知的,我很抱歉。谢谢。

标签: pythonhtmlxmlbeautifulsoup

解决方案


下面(您以 json 格式获取数据并使用字典)

import requests
import pprint

r = requests.get('http://auxopsweb2.oit.nd.edu/DiningMenus/api/Menus/46')
if r.status_code == 200:
    data = r.json()
    pprint.pprint(data)
else:
    print('Failed to read data: {}'.format(r.status_code))

推荐阅读