2012-02-14 12 views
1

私はプログラミング経験が少ないので、私の無知を言い訳してください。Pythonで解析されたHTMLデータを並べ替える

私はYahoo!の「Key Statistics」ページを解析しようとしていますファイナンス、具体的にはthisページです。私はBeautifulSoupを使いこなしていましたが、私が望んでいたデータを抽出することができましたが、それ以来精神ブロックに遭遇しました。私は、データがこのように表示させたいと思います:

measure[i]: value[i] 
. 
. 
measure[n]: value[n] 

が、私は私のスクリプトを取得していた結果は次のとおりです。ここで

measure[i] 
. 
.  
measure[n] 
value[i] 
. 
. 
value[n] 

スロー2つのデータフィールドを一緒に参加する私の試みですエラー:

measure = soup.findAll('td', {'class':'yfnc_tablehead1'}, width='74%') 
value = soup.findAll('td', {'class':'yfnc_tabledata1'}) 

for incident in measure: 
    x = incident.contents 

for incident2 in value: 
    y = incident2.contents 

data = x + y 

print ': '.join(data) 

また、削除したいこれらの値には不要な文字がありますが、私はre.compileとre.subのドキュメントを読み上げます。

ありがとうございます。

答えて

2
data = x + y 

+オペレータを使用すると、リストのカップルに対応する項目にしたい場合はzip()機能してみてください、リストが追加されます。これは、すべての反復でxを上書き

for incident in measure: 
    x = incident.contents 

、また

data = zip(x,y) 
for m,v in data: 
    print m,v 

をループの最後にはxには最後の値のみが含まれ、それらの集合体は含まれませんすべて。同じことが他のループのために行くもちろんの

for incident in measure: 
    x += incident.contents # x += y is the same as x = x + y 

:ここで、あなたはおそらく、そうのような+演算子を使用したいです。

+0

はあなたの助けをいただき、ありがとうございます。あなたのメソッドは、実際に私が入って不要なタグを削除する必要性を排除しましたが、あなたが言及したように、最後の値だけが表示されました。すべての値の集計を表示するために実装した 'for'ループを置き換えるには、どのような(効率的な)アプローチをお勧めしますか? – user1205632

+0

そのコメントを無視してください! forループを削除し、あなたの提案を実装しました。今、残されているのは、BeautifulSoupに入り、不要なタグを整理することだけです。 – user1205632

0
measures = ['1', '2', '3', '4'] 
values = ['a', 'b', 'c', 'd'] 

for pair in zip(measures, values): 
    print ': '.join(pair) 

# 1: a 
# 2: b 
# 3: c 
# 4: d 

についてzip

Type:  builtin_function_or_method 
Base Class: <type 'builtin_function_or_method'> 
String Form:<built-in function zip> 
Namespace: Python builtin 
Docstring: 
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)] 

Return a list of tuples, where each tuple contains the i-th element 
from each of the argument sequences. The returned list is truncated 
in length to the length of the shortest argument sequence. 
関連する問題