python - 我可以使用 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 合作过,如果我的问题是无知的,我很抱歉。谢谢。
解决方案
下面(您以 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))
推荐阅读
- google-cloud-functions - 如何使用 firebase 功能在对话流上播放音频文件
- javascript - 在 js 中使用 ajax 的联系表单不会 POST
- python - 在 Django 中清除 ImageField
- jekyll - 如何使用 static_files 创建指向具有动态名称的文档的链接?
- php - PHP MS SQL 填充下拉菜单
- c# - .Net Core 3.0 中的 IMvcBuilder AddJsonOptions 去了哪里?
- java - 为什么创建了名为“{java}”的线程(即轻量级进程)?
- c - 用C中的计时器计算时间
- cassandra - 无法登录谷歌云平台托管的 3 个节点的 Cassandra 集群中的 cqlsh
- angular - *ngFor 中的变量需要初始化还是非空?