有没有人有刮刮SEC 10-K和10-Q备案的经验?我试图从这些文件中删除每月实现的股票回购时遇到困难.具体而言,我想获得以下信息:1.期间; 2.购买的股份总数; 3.每股平均支付价格; 4.作为公开宣布的计划或计划的一部分购买的股份总数; 5.从2004年到2014年,每个月根据计划或计划购买的股票的最大数量(或近似美元价值).我总共有90,000多种表格需要解析,所以这样做是不可行的手动.
此信息通常在10-Ks的"第2部分项目5注册人普通股权市场,相关股东事项和发行人购买股权证券"和"第2部分第2项未注册的股权证券销售和所得款项用途"中报告.
以下是我需要解析的10-Q文件的一个示例:https: //www.sec.gov/Archives/edgar/data/12978/000104746909007169/a2193892z10-q.htm
如果公司没有股票回购,则季度报告中可能会缺少此表.
我试图用Python BeautifulSoup解析html文件,但结果并不令人满意,主要是因为这些文件不是以一致的格式编写的.
例如,我能想到解析这些表单的唯一方法是
from bs4 import BeautifulSoup
import requests
import unicodedata
import re
url='https://www.sec.gov/Archives/edgar/data/12978/000104746909007169/a2193892z10-q.htm'
def parse_html(url):
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html5lib')
tables = soup.find_all('table')
identifier = re.compile(r'Total.*Number.*of.*Shares.*\w*Purchased.*', re.UNICODE|re.IGNORECASE|re.DOTALL)
n = len(tables) -1
rep_tables = []
while n >= 0:
table = tables[n]
remove_invalid_tags(table)
table_text = unicodedata.normalize('NFKD', table.text).encode('ascii','ignore')
if re.search(identifier, table_text):
rep_tables += [table]
n -= 1
else:
n -= 1
return rep_tables
def remove_invalid_tags(soup, invalid_tags=['sup', 'br']): …Run Code Online (Sandbox Code Playgroud) 目前,我正在从事一个项目,其中一个 PHP 脚本从ftp://ftp.sec.gov 获取索引文件并将所有公司信息放入数据库中。然后,第二个 PHP 脚本从 SEC 获取原始文本文件并将其保存在本地进行处理。
可以在此处找到原始文本文件的示例 -
ftp://ftp.sec.gov/edgar/data/2488/0000002488-15-000028.txt
可以在此处找到最终结果的示例 - http://www.sec.gov/Archives/edgar/data/1084869/000143774915020024/flws20150927_10q.htm
目标是能够像许多公司一样以格式化的方式呈现文件,但问题是我似乎无法弄清楚每个文件都是如何可靠地完成的。一些文件似乎有 XML,其他文件似乎有 HTML
我如何能够可靠地生成原始文本文件的格式化版本?
我拥有的当前代码 -
$db_hostname = "localhost";
$db_username = "username";
$db_password = "password";
$db_database = "database";
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database)
or die("Unable to select database: " . mysql_error());
$query = "SELECT * FROM company WHERE company = '1 800 FLOWERS COM INC' AND date = '2015-08-06'";
$result = mysql_query($query);
$row …Run Code Online (Sandbox Code Playgroud) 我正在与 Edgar 的 10-K 一起工作。为了协助文件管理和数据分析,我想创建一个表,其中包含每个文件的路径、提交的公司的CIK号(这是SEC颁发的唯一ID)以及它所属的SIC行业代码。下面是直观地代表我想要做的事情的图像。
我想要提取的两件事列在每个文档的顶部。CIK # 始终是短语“CENTRAL INDEX KEY:”之后列出的数字。SIC # 始终是“标准工业分类”后面括号内的数字,然后是对该特定行业的描述。
这在所有文件中都是一致的。
要做的事:
循环遍历文件:提取文件路径、CIK 和 SIC 编号 - 请注意,每个文档我只得到一个返回值,并且每个结果都是按顺序排列的,因此字段之间的记录是对齐的。
将这些字段合并在一起——我猜最好的方法是将每个字段提取到它们自己的单独列表中,然后合并,也许合并到 Pandas 数据框中?
最终,我将使用此表来帮助我对 SIC 行业之间的数据进行子集化。
感谢您的浏览。如果我可以提供额外的文件,请告诉我。
我尝试解析 SEC 公司文件sec.gov。从fb 10-Q index.htm开始,让我们看一下完整的文本提交归档,例如完整的提交文本归档。它的结构如下:
<SEC-DOCUMENT>
<SEC-HEADER>
<ACCEPTANCE-DATETIME>"some content" This tag is not closed.
"some lines resembling yaml markup"
These are indented lines with a
"key": "value" structure.
</SEC-HEADER>
<DOCUMENT>
.
.
some content
.
.
</DOCUMENT>
"several DOCUMENT tags" ...
</SEC-DOCUMENT>
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚标签的结构,并在公共传播服务(PDS)技术规范(pdf)<SEC-HEADER>下找到了一些信息,并得出标题的内容应该是SGML。
尽管如此,我对格式一无所知,因为没有尖括号,并且键-值对是用冒号分隔的,而key: value不是<key>value</key>。在 pdf 链接中我找不到任何有关冒号的信息。
问题: <SEC-HEADER>标签是否有效 SGML?如果是的话如何解析?
我很乐意提供任何帮助。