作为一个例子,我正试图从下面给定的URL中提取整个文本数据。我有很多URL都是自动化的。我尝试了这里发布的每一个代码,它们都给出了错误,例如AttributeError:"NoneType"对象没有属性"find_next"。也许开源软件版本发生了更改,因此结果会受到影响。
这里有一个链接:url=r";https://www.sec.gov/Archives/edgar/data/1166036/000110465904027382/0001104659-04-027382.txt"有人在python中共享工作代码吗?代码应该给出由从第一部分开始的整个文本信息组成的数据,最好是从第1A项一直到最后。
以下是一个未运行的示例:从(Edgar 10-K文件)HTML 中提取文本部分
更新:我在美国证券交易委员会的数据上做了这些
html = bs(page.content, "lxml")
text = html.get_text()
text = unicodedata.normalize("NFKD", text).encode('ascii', 'ignore').decode('utf8')
text = text.split("n")
text = " ".join(text)
我收到了文本和一些垃圾,比如下面的——它可能来自表格——有没有办法过滤掉这些:
<div style="font-family:'Times New Roman',Times,衬线体;字体大小:10pt"quot>lt;div style="文本对齐:对齐;线路高度:11.4pt;font-family:'Times New Roman',Times,衬线体;字体大小:10pt;font weight:bold"quot>
<div style="文本对齐:对齐;线路高度:11.4pt;font-family:'Times New Roman',Times,衬线体;字体大小:10pt;font weight:bold"quot>(4) 应付抵押票据、银行信贷额度和其他贷款<div style="线路高度:11.4pt"quot>lt;br style="quot;线路高度:11.4pt"quot/>lt;div style="文本对齐:对齐;线路高度:11.4pt"quot>lt;font style="字体大小:10pt;font-family:'Times New Roman',Times,衬线体"quot>截至2018年10月31日,公司有应付抵押贷款票据和其他贷款,这些贷款将在2031财年的不同时期分期到期。抵押贷款的利率在3.5%至6.6%之间,并以账面净值约5.582亿美元的房地产投资为抵押<div style="线路高度:11.4pt"quot>lt;br style="quot;线路高度:11.4pt"quot/>lt;div style="文本对齐:对齐;线路高度:11.4pt;font-family:'Times New Roman',Times,衬线体;字体大小:10pt"quot>未来五年及以后应付抵押票据的本金到期日合计如下(以千计):<div style="线路高度:11.4pt"quot>lt;br style="quot;线路高度:11.4pt"quot/>lt;table align="中心"border="0"cellpadding="0"单元间距="0"style="宽度:80%;font-family:'Times New Roman',Times,衬线体;字体大小:10pt"quot>lt;td valign="底部"style="垂直对齐:顶部;填充底部:2px"quot><td colspan="1〃"valign="底部"style="垂直对齐:底部;填充底部:2px"quot><td colspan="2〃"valign="底部"style="垂直对齐:顶部;边框底部:#000000实心2px"quot>lt;div style="文本对齐:居中;线路高度:11.4pt"quot>lt;font style="字体大小:10pt;font-family:'Times New Roman',Times,衬线体"quot>委托人<div style="文本对齐:居中;线路高度:11.4pt"quot>lt;font style="字体大小:10pt;font-family:'Times New Roman',Times,衬线体"quot>还款<td colspan="1〃"nowrap="nowrap"valign="底部"style="文本对齐:左;垂直对齐:底部;填充底部:2px"quot><td colspan="1〃"valign="底部"style="垂直对齐:底部;填充底部:2px"quot><td colspan="2〃"valign="底部"style="垂直对齐:顶部;边框底部:#000000实心2px"quot>lt;div style="文本对齐:居中;线路高度:11.4pt"quot>lt;font style="字体大小:10pt;font-family:'Times New
您的URL表示修改后的8-K文件(即8-K/A),而不是10-K。8-K锉刀具有与10K不同的结构。项目1A不存在于8-K中,从1到15的其他项目也不存在。我添加了一个完整的10K和8K项目列表,以便在下面进行比较。换句话说,即使你设法让10-K的提取算法工作,它也不会在8-K上工作。
事实上,我不得不解决同样的问题:从10 Ks、10 Qs和8 Ks中提取截面,并开发了一种提取算法,覆盖了约99%的所有边缘情况。算法是一个庞然大物,它利用了许多自然语言处理策略。
Python示例
以下是一个示例,说明如何从特斯拉的10-K文件中提取第1A项和第7项。它也适用于所有其他项目。
from sec_api import ExtractorApi # https://pypi.org/project/sec-api/
extractorApi = ExtractorApi("YOUR_API_KEY")
# Tesla 10-K filing
filing_url = "https://www.sec.gov/Archives/edgar/data/1318605/000156459021004599/tsla-10k_20201231.htm"
# get the standardized and cleaned text of section 1A "Risk Factors"
section_text = extractorApi.get_section(filing_url, "1A", "text")
# get the original HTML of section 7
# "Management’s Discussion and Analysis of Financial Condition and Results of Operations"
section_html = extractorApi.get_section(filing_url, "7", "html")
输出
section_text[0:1000]
包括:
ITEM 1A. RISK FACTORSnnYou should carefully consider the risks described below together with the other information set forth in this report, which could materially affect our business, financial condition and future results. The risks described below are not the only risks facing our company. Risks and uncertainties not currently known to us or that we currently deem to be immaterial also may materially adversely affect our business, financial condition and operating results. nnRisks Related to Our Ability to Grow Our BusinessnnWe may be impacted by macroeconomic conditions resulting from the global COVID-19 pandemic.nnSince the first quarter of 2020, there has been a worldwide impact from the COVID-19 pandemic. Government regulations and shifting social behaviors have limited or closed non-essential transportation, government functions, business activities and person-to-person interactions. In some cases, the relaxation of such trends has recently been followed by actual or...
10-K项目列表:
- 1-商务
- 1A-风险因素
- 1B-未解决的员工意见
- 2-属性
- 3-法律程序
- 4-矿山安全披露
- 5-注册人普通股市场、相关股东事项和发行人购买权益性证券
- 6-选定的财务数据(2021年2月之前)
- 7-管理层对财务状况和经营成果的讨论和分析
- 7A-关于市场风险的定量和定性披露
- 8-财务报表和补充数据
- 9-会计师在会计和财务披露方面的变更和分歧
- 9A-控制和程序
- 9B-其他信息
- 10-董事、高管和公司治理
- 11-高管薪酬
- 12-某些受益所有人和管理层的证券所有权及相关股东事项
- 13-某些关系和关联交易以及董事独立性
- 14-主会计师费用和服务
8-K项目列表:
- 1.01:签订实质性最终协议
- 1.02:重大最终协议的终止
- 1.03:破产或接管
- 1.04:矿山安全-关闭和违规模式的报告
- 2.01:资产收购或处置完成
- 2.02:经营成果和财务状况
- 2.03:注册人的直接财务义务或表外安排下的义务的产生
- 2.04:加速或增加直接财务义务或表外安排下义务的触发事件
- 2.05:与退出或处置活动相关的成本
- 2.06:重大损失
- 3.01:退市或未能满足持续上市规则或标准的通知;上市转让
- 3.02:权益证券的未注册销售
- 3.03:对担保持有人权利的重大修改
- 4.01:注册人认证会计师的变更
- 4.02:不依赖先前发布的财务报表或相关审计报告或已完成的中期审查
- 5.01:注册人控制权的变更
- 5.02:董事或某些高管离职;董事选举;某些官员的任命:某些官员的补偿安排
- 5.03:公司章程或章程的修订;会计年度变动
- 5.04:根据注册人的员工福利计划暂时暂停交易
- 5.05:对注册人道德准则的修订,或对道德准则条款的放弃
- 5.06:壳牌公司状态变更
- 5.07:向证券持有人投票提交事项
- 5.08:根据《交易法》第14a-11条的股东提名
- 6.01:ABS信息和计算材料
- 6.02:服务人或受托人的变更
- 6.03:信用增强或其他外部支持的变化
- 6.04:未能进行必要的分配
- 6.04:未能进行必要的分配
- 6.04:未能进行必要的分配
- 6.05:《证券法》更新披露
- 6.06:静态池
- 6.10:资产支持发行人的替代备案
- 7.01:条例FD披露
- 8.01:其他事件
- 9.01:财务报表和附件