美丽的汤返回“无”

时间:2019-12-30 04:47:04

标签: python html web-scraping beautifulsoup html-parsing

我正在使用以下代码使用漂亮的汤提取数据:

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

我已经尝试了最后一行的不同变体,以使该程序在每次返回“ None”或空列表时都显示任何内容。我唯一可以显示的是使用print(soup.contents)的网站的整个html。我尝试提取的数据是每个signID标签中的“ Display”标签值。打印网站的整个HTML时,数据显然就在那里。

其他信息:我要提取的数字是停车场当前的停车位数量,因此该网站会在第二秒更新。

其他信息2:此网站是https://www.jmu.edu/parking/的iframe。我需要的数据位于“通勤停车”的右下角

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

1 个答案:

答案 0 :(得分:0)

我可以看到您正在尝试提取每个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个值的输出,这给出了57个signIdDisplay值。

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