美汤returns'none'

Beautiful Soup returns 'none'

我正在使用下面的代码使用美丽的汤提取数据:

import requests
import bs4
res = requests.get('https://www.jmu.edu/cgi-bin/parking_sign_data.cgi?hash=53616c7465645f5f5c0bbd0eccccb6fe8dd7ed9a0445247e3c7dcb4f91927f7ccc933be780c6e558afb8ebf73620c3e5e3b2c68cd3c138519068eac99d9bf30e1e67ce894deb3a054f95f882da2ea2f0|869835tg89dhkdnbnsv5sg5wg0vmcf4mfcfc2qwm5968unmeh5')
soup = bs4.BeautifulSoup(res.text, 'xml')
soup.find_all("span", class_="text")

我尝试了最后一行的不同变体,试图让程序显示任何内容,但每次都是 returns "None" 或一个空列表。我唯一可以显示的是整个 html 站点使用:print(soup.contents)。我要提取的数据是每个 signID 标签中的 "Display" 标签值。当它打印整个 HTML 网站时,数据显然就在那里。

附加信息:我要提取的数字是停车场中当前的车位数量,因此该网站每秒都会更新。

附加信息 2:此站点是 https://www.jmu.edu/parking/ 的 iframe。我要的数据在右下角"commuter parking"

网站URL:https://www.jmu.edu/cgi-bin/parking_sign_data.cgi?hash=53616c7465645f5f5c0bbd0eccccb6fe8dd7ed9a0445247e3c7dcb4f91927f7ccc933be780c6e558afb8ebf73620c3e5e3b2c68cd3c138519068eac99d9bf30e1e67ce894deb3a054f95f882da2ea2f0|869835tg89dhkdnbnsv5sg5wg0vmcf4mfcfc2qwm5968unmeh5

我看到您正试图在每个 Sign 标签下提取 Display 标签值。希望对你有所帮助。

代码:

import requests
from bs4 import BeautifulSoup
res = requests.get('https://www.jmu.edu/cgi-bin/parking_sign_data.cgi?hash=53616c7465645f5f5c0bbd0eccccb6fe8dd7ed9a0445247e3c7dcb4f91927f7ccc933be780c6e558afb8ebf73620c3e5e3b2c68cd3c138519068eac99d9bf30e1e67ce894deb3a054f95f882da2ea2f0|869835tg89dhkdnbnsv5sg5wg0vmcf4mfcfc2qwm5968unmeh5')
soup = BeautifulSoup(res.text, 'lxml')
for data in soup.find_all('sign'):
    print(data.signid.text, data.display.text)

输出:

1  442
2  442
3  442
4 Happy Holidays
5 Happy Holidays

我只显示了 5 个值的输出,这给出了 57 个 signIdDisplay 个值。

如果您只需要 Display 个值,您可以直接使用 soup.find_all('display')。我在示例中使用了 signIdDisplay 仅供参考。