2011-01-11 12 views
0

私はちょうど1500を超えるhtmlページ(1.htmlから1500.html)を持っています。私は美しいスープを使ってコードを書いています。これは、必要なデータの大部分を抽出しますが、テーブル内のデータの一部を「欠落」します。複数のhtmlファイルのテキストを1つのcsvファイルにスクラップ

マイ入力:例えば、ファイル1500.html

マイコード:

#!/usr/bin/env python 
import glob 
import codecs 
from BeautifulSoup import BeautifulSoup 
with codecs.open('dump2.csv', "w", encoding="utf-8") as csvfile: 
for file in glob.glob('*html*'): 
     print 'Processing', file 
     soup = BeautifulSoup(open(file).read()) 
     rows = soup.findAll('tr') 
     for tr in rows: 
       cols = tr.findAll('td') 
       #print >> csvfile,"#".join(col.string for col in cols) 
       #print >> csvfile,"#".join(td.find(text=True)) 
       for col in cols: 
         print >> csvfile, col.string 
       print >> csvfile, "===" 
     print >> csvfile, "***" 

出力:

一つのCSVファイル、1500のテキストの行や列を持ちますデータ。何らかの理由で私のコードが必要なデータをすべて抜き出してしまいますが、データの一部が失われてしまいます。たとえば、テーブルの先頭にあるAddress1とAddress2のデータが出力されません。私は*と===セパレータを入れるようにコードを修正しました。それからperlを使ってクリーンなCSVファイルを作成しました。残念ながら、私が探しているすべてのデータを得るためにコードをどのように動作させるべきかわかりません!

答えて

0

私は同じファイルが異なるフォーマットを持っていると思います、または提出多分本当にアドレスを逃している...

を使用すると、パラメータ、 を逃し、その後何が起こったのかを分析してみますファイルを見つけます。

+0

こんにちはTheNIK、すべてのhtmlファイルは書式の点で全く同じですが、唯一の違いはtrタグ – Lulu

関連する問題