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にアクセスしようとすると、ファイル(データを含む)がPCに自動的に保存されるため、htmlソースコードにアクセスできません。URLを使用して、beautifulsoupを使用してデータをインポートしました。、しかし、htmlタグは不明であるため、検索または操作できません。実際に必要なデータは、最新の1時間ごとの読み取り値(約1300行のうちの1つ)です。その行のうち、最後の値のみが必要です。ありますかhtmlタグを見つける方法はありますか?そうでない場合、必要なデータを抽出するための最良の方法は何でしょうか?

どんな助けでも大歓迎です、ありがとう。

4

1 に答える 1

2

ダウンロードしているファイルにはHTMLが含まれていません。これはコンマ区切りのファイルであり、csvモジュールを使用して解析する必要があります。

このコードは、各行の最初の項目(日付と時刻を含む項目)を出力します。

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]
于 2013-02-05T13:27:28.150 に答える