2012-05-14 13 views
0

私は40,000のHTMLファイルを持っています。各ファイルには、特定の会社の損益計算書&を含むテーブルがあります。Stataへのデータの掻き取り

これらすべてのデータをStataにスクラップしたいと思います。 (あるいは、Excel/CSVファイルに)。最終製品は、すべての企業のリストとその貸借対照表の詳細(収入、利益など)を含むStata/Excelファイルである必要があります。

これはどのように実行できますか?私はOutwitを試しましたが、十分には見えません。

答えて

1

Stataは、ジョブにとって最適なツールではありません。ローレベルのfileコマンドを使用して入力テキストファイルを読み込み、関連するテーブルを解析してください(やはり、低レベルの文字列処理を使用して)。それらをデータセットに入れるのが最も簡単な部分です。

expand 2 in l 
    replace company = "parsed name" in l 
    replace revenue = parsed_revenue in l 

などとするか、postメカニックを使用してください。運が良ければ、もっとシンプルになるパッケージがいくつか見つかりますが、私は気づいていません。findit htmlは何も使用できないようです。

0

Stataはこの仕事には適していません。原理的には可能です。個人的に私は既に類似のことをしています:アスキーファイルをStataに読み込み、それらを解析し、それらの情報を抽出します。 insheetを使用してデータをStataにダンプしました。その後私はStataのstring functionsでデータを処理しました。ちょっと面倒だった。ファイルはかなりシンプルで明確な構造を持っていました。私はファイルがより複雑な構造を持っているときに何が起こるか想像したくありません。

私は、Python、Perl、Rubyなどのスクリプト言語を使用することをお勧めします。 htmlテーブルに含まれる情報を抽出します。結果は、csv、Excel、またはStata(.dta)ファイルにも簡単に書き込むことができます。

+0

として本質的に非力なここでスクリプト言語よりもStataのを考えていない、と確かに文字列関数に使用するツールを制限する理由理由はありません。どのような意味を抽出するのかを指定せずに意味を抽出するプログラムはありません。この点は、特定のファイル構造の例を示し、異なるソフトウェアでどのコードが動作するかを見ることによってのみ解決できます。 –

0

Python beautifulsoupパッケージを使用する必要があります。 HTMLファイルからデータを抽出するのに非常に便利です。以下はリンクです。ドキュメントで

http://www.crummy.com/software/BeautifulSoup/

は、しかし、唯一のいくつかのコマンドは重要であり、多くのコマンドがあります。以下は、重要なコマンドです:

from bs4 import BeautifulSoup 

#read the file 
fp=open(file_name,'r') 
data=fp.read() 
fp.close() 


#pass the data to beautifulsoup 
soup = BeautifulSoup(html_doc, 'html.parser') 

#extract the html elements by id and write result into file 
関連する問題