40,000 個の HTML ファイルがあります。各ファイルには、特定の会社の損益計算書を含むテーブルがあります。
これらすべてのデータを Stata にスクレイピングしたいと思います。(または、Excel/CSV ファイルに)。最終製品は、すべての会社のリストと貸借対照表の詳細 (収益、利益など) を含む Stata/Excel ファイルである必要があります。
これを行う方法を教えてください。Outwit を試しましたが、十分ではないようです。
Stata は、この仕事に最適なツールとは言えません。低レベルのfile
コマンドを使用して入力テキスト ファイルを読み取り、関連するテーブルを解析する必要があります (ここでも、低レベルの文字列処理を使用します)。それらをデータセットに入れるのが最も簡単な部分です。あなたはどちらかをすることができます
expand 2 in l
replace company = "parsed name" in l
replace revenue = parsed_revenue in l
など、またはpost
力学を使用します。運が良ければ、より簡単にするパッケージを見つけることができますが、私は何も認識してfindit html
おらず、使用できるものを何ももたらさないようです。
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
Stata は、この仕事に適したツールではありません。原則として可能です。個人的には、私はすでに同様のことを行っています: ascii ファイルを Stata に読み込み、それらを解析し、そこから情報を抽出します。insheetを使用してデータを Stata にダンプしました。次に、データを Stata のstring functionsで処理しました。少し面倒でした。また、ファイルの構造は非常にシンプルで明確です。ファイルがより複雑な構造になったときに何が起こるか想像したくありません。
Python、Perl、Ruby などのスクリプト言語を使用するのが最善の戦略だと思います。html テーブルに含まれる情報を抽出します。結果は、csv、Excel、または Stata (.dta) ファイルに簡単に書き込むことができます。