2013-02-05 54 views
2

我正在開發一個需要輸入數據的項目,這個項目需要在一個活動的閃存圖表中顯示(數據記錄圖表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。但是,當我嘗試訪問這個URL時,它會自動將一個文件(包含數據)保存到我的電腦,所以我無法訪問html源代碼。使用url,我已經使用了beautifulsoup來導入數據,但是我不能使用html標籤來搜索或操作它,因爲它們是未知的。我實際需要的唯一數據是最新的小時閱讀--1300行之一。那條線,我只需要最後一個值。有沒有一種方法可以找到html標籤?如果沒有,提取我需要的數據位的最好方法是什麼?在沒有html標籤的情況下搜索美麗的湯汁輸出

任何幫助將不勝感激, 謝謝。

+0

請提供您目前爲止使用BeautifulSoup代碼,即使如果不按預期工作。 – Bryan

回答

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] 
+0

謝謝。我現在有一個額外的問題。我想要的閱讀是作爲我自己的實時圖的輸入。如果我使用文件而不是網址,我不明白這是如何實現的。你會建議什麼? –

+0

我已經擴展了答案 - 請參閱第二部分代碼。 – gauden