0

我有 40,000 个 HTML 文件。每个文件都有一个包含特定公司损益表的表格。

我想将所有这些数据刮到 Stata 中。(或者,放入 Excel/CSV 文件)。最终产品应该是一个 Stata/Excel 文件,其中包含所有公司的列表及其资产负债表的详细信息(收入、利润等)

我可以知道如何做到这一点吗?我尝试了 Outwit,但似乎还不够好。

4

3 回答 3

2

Stata 并不是完成这项工作的最佳工具。您必须使用低级file命令来读取输入文本文件,然后解析出相关表(同样,使用低级字符串处理)。将它们放入数据集中是最简单的部分;你可以

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

等等,或者使用post力学。运气好的话,你会发现一些可能使它更简单的包,但我不知道有什么,而且findit html似乎没有带来任何可用的东西。

于 2012-05-15T05:37:41.443 回答
1

Stata 不是这项工作的好工具。原则上是可以的。就我个人而言,我已经做过类似的事情:将 ascii 文件读入 Stata,解析它们并从中提取信息。我已使用insheet将数据转储到 Stata 中。然后我用Stata的字符串函数处理了数据。这有点麻烦。这些文件的结构非常简单明了。我不想想象当文件具有更复杂的结构时会发生什么。

我认为最好的策略是使用脚本语言,例如 Python、Perl 或 Ruby。提取包含在 html 表中的信息。结果可以很容易地写入 csv、Excel 甚至是 Stata (.dta) 文件。

于 2012-05-15T20:30:13.133 回答
1

你应该使用 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
于 2015-11-04T14:24:19.153 回答