python - 美丽的汤返回“无”
问题描述
我正在使用以下代码使用美丽的汤提取数据:
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")
我尝试了最后一行的不同变体,试图让程序显示任何内容,但每次它返回“无”或空列表时。我唯一能显示的是网站的整个 html 使用:print(soup.contents)
. 我试图提取的数据是每个 signID 标记中的“显示”标记值。当它打印网站的整个 HTML 时,数据就在那里。
附加信息:我试图提取的数字是停车场中当前的停车位数量,因此网站按秒更新。
附加信息 2:本网站是https://www.jmu.edu/parking/的 iframe 。我要的数据在“通勤停车”下的右下角
解决方案
我可以看到您正在尝试提取Display
每个Sign
标签下的标签值。希望这对您有所帮助。
代码:
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 个值的输出,这给出了 57signId
和Display
值。
soup.find_all('display')
如果只需要Display
值,则可以直接使用。我在示例中使用了signId
andDisplay
仅供参考。
推荐阅读
- javascript - 为 Postgresql tswtz 数据类型生成带有时区的服务器端时间戳
- php - PHP 从 IP 中提取 SSL 证书信息
- oracle-jet - 如何在 oracle JET 中将 oj-table 数据下载到 csv
- c# - Linq 更新错误 此上下文仅支持原始类型或枚举类型
- azure-service-fabric - 每个节点有多个无状态服务实例
- html - CSS Color 属性不适用于 .active (Bootstrap 4)
- java - 使用 java 或命令行关闭命令窗口
- swift - Swift 更新问题:无法转换类型“(参数:[AnyHashable:Any]!)-> Bool”的值
- javascript - 是否应该缩小仅由用户脚本使用的库?
- php - PHP:确定十几个变量中的任何一个是否具有特定值