Python - Beautiful Soup を使用して、HTML を使用して表示される XML ファイルを Web から取得できますか?

okwaves2024-01-24  5

ここに 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 を実際に使用したことがないので、私の質問が無知だったら申し訳ありません。ありがとう。



------------------------

別の方法。

from simplified_scrapy import SimplifiedDoc, req
url = 'http://auxopsweb2.oit.nd.edu/DiningMenus/api/Menus/46'
html = req.get(url)
doc = SimplifiedDoc(html)
MenuCourses = doc.selects('ServiceMenu').selects('MenuCourse')
print(MenuCourses.Name.text)

その他の例は次のとおりです: https://github.com/yiyedata/simplified-scrapy-demo/tree/master/doc_examples



------------------------

以下 (データを json として取得し、dict を操作します)

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))

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。