EDGAR .txt 文件的 HTML 呈现

Posted

技术标签:

【中文标题】EDGAR .txt 文件的 HTML 呈现【英文标题】:HTML Rendering of EDGAR .txt Filings 【发布时间】:2016-03-02 22:43:59 【问题描述】:

目前,我正在进行一个项目,其中一个 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 = mysql_fetch_row($result);
$file = "ftp://ftp.sec.gov/" . $row[4]; 
$text = file_get_contents($file);   
    if($text === false)
        echo "error downloading file $row[4]\n";
        continue;
    

$tarray = explode('<SEQUENCE>', $text);             


    for($i = 1; $i < count($tarray); $i++)
        $a = strstr($tarray[$i], '<HTML>');             
        if($a == false)continue;                    //means that there is no html document in this sequence
        $html = strstr($a, '</HTML>', true);
        $html.="</HTML>";

        $running = $running . $html;
    

        $temp = "cache.htm";
        file_put_contents($temp, $running);

$name = $row[0] . "-" . $row[3] . ".pdf";
$name = str_replace(' ', '_', $name);
//$content = file_get_contents($row[2] . "-" . $row[1] . ".htm");
exec("D://wkhtmltopdf/bin/wkhtmltopdf.exe $temp $name");

unlink($temp);

//echo($row[0] . " created");

?>

【问题讨论】:

你能提供一些代码吗? Stack Overflow 旨在帮助您回答明确的问题,而不是博客形式的讨论。 我已经添加了代码。就目前而言,它处理 HTML 中的文档部分,但如果有图像或 XML 元素,它会完全忽略它们。 感谢您的回复和努力。我将删除我的 cmets。希望您的问题能及时得到解决 【参考方案1】:

您不需要使用原始文本文件。您可以使用sec-api (https://www.npmjs.com/package/sec-api)。该软件包使用 websockets 为 sec.gov EDGAR 提供了一个实时通道 - 它适用于客户端(React、React Native、Angular、Vue 等)和服务器端(Node.js 等)javascript

一旦在 EDGAR 上发布了新文件(10K、10Q、13D 等),程序包就会触发一个事件,并以 JSON 格式返回以下数据:


  "companyName":"MORGAN STANLEY (0000895421) (Filer)",
  "type":"424B2",
  "description":"FORM 424B2",
  "linkToFilingDetails":"https://www.sec.gov/...014988-index.htm",
  "linkToHtmlAnnouncement":"https://www.sec.gov/...268.htm",
  "announcedAt":"2018-12-26T16:02:32-05:00"

linkToFilingDetails 指向列出文件所有附件的 HTML 文件。 linkToHtmlAnnouncement 指向文件本身的 HTML 文件。

也可以将 PHP 与支持 websockets 的插件(例如 Ratchet)结合使用。

示例:

我开发了这个工具。如果您有任何反馈,请告诉我,我很乐意添加功能。

【讨论】:

以上是关于EDGAR .txt 文件的 HTML 呈现的主要内容,如果未能解决你的问题,请参考以下文章

使用 SEC Edgar Logfile 数据库 // 大型数据库的 ZIP 文件提取和存储

将源代码保存为为客户端呈现的 .txt 文件

从 HTML、CSS 和 JavaScript 中获取干净的字符串

如何使用美丽的汤来刮掉SEC的Edgar数据库并接收欲望数据

活动类 yodgobekkomilov.edgar.com.githubapi/yodgobekkomilov.edgar.com.githubapi.SearchActivity 不存在

SEC EDGAR 13F 源 HTTPError:HTTP 错误 403:禁止