我正在使用以下代码使用漂亮的汤提取数据:
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。我需要的数据位于“通勤停车”的右下角
答案 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个signId
和Display
值。
如果只需要soup.find_all('display')
个值,则可以直接使用Display
。在示例中,我仅使用signId
和Display
作为参考。