将数据抓取到 Stata 中

问题描述 投票:0回答:3

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

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

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

excel web-scraping stata
3个回答
2
投票

Stata 并不是完成这项工作的最佳工具。您必须使用低级

file
命令来读取输入文本文件,然后解析出相关表(再次使用低级字符串处理)。将它们放入数据集中是最简单的部分;你也可以

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

等,或使用

post
机制。 运气好的话,你会发现一些可以让事情变得更简单的软件包,但我不知道有什么,而且
findit html
似乎没有带来任何可用的东西。


1
投票

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

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


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
© www.soinside.com 2019 - 2024. All rights reserved.