我正在开发一个项目,需要输入来自实时闪存图表的数据(http://137.205.144.34/flash/index.html#menuIndex=1&accordionIndex=2&menuId=mimic1&menuStruct=S1R2M3C1H1
的数据记录图表。由于无法直接访问html,我使用Firebug监控我的活动,并找到我想要存储在http://137.205.144.34/services/unload.cmd?format=csvx&sched=&start=-240:00:00&id=75631&step=864
的数据。但是,当我尝试访问此网址时,它会自动将文件(包含数据)保存到我的电脑上,因此我无法访问html源代码使用url,我使用了beautifulsoup来导入数据,但我不能使用html标签搜索或操作它,因为它们是未知的。我真正想要的唯一数据是最新的每小时读数 - 大约1300行之一。那条线,我只需要最后一个值。有没有办法可以找到html标签?如果没有,那么提取我需要的数据的最佳方法是什么?
任何帮助将不胜感激, 谢谢。
答案 0 :(得分:2)
您下载的文件中没有HTML。它是一个以逗号分隔的文件,您应该使用csv module来解析它。
此代码将打印每行中的第一项(包含日期和时间的项目):
import csv
with open('unload.cmd', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print row[0]
这可以假设您使用的是使用默认名称下载的文件。
为了首先以编程方式下载文件,将其导入字符串,然后将其用作csv.reader()
的源文件:
import urllib
import csv
import StringIO
url = 'http://137.205.144.34/services/unload.cmd?format=csvx&sched=&start=-240:00:00&id=75631&step=864'
f = urllib.urlopen(url)
data = f.read()
reader = csv.reader(StringIO.StringIO(data))
for row in reader:
if row: print row[0]