我試圖通過使用Python的BeautifulSoup或HTMLParser從SEC的EDGAR系統上的10-K報告(例如公司的代理報告)中提取「唯一的」文本信息。然而,我正在使用的解析器似乎不能很好地適用於'txt'格式的文件,包括很大一部分無意義的符號和標籤以及一些根本不需要的xbrl信息。但是,當我將解析器直接應用於'htm'格式文件時,它們或多或少地免於無意義標籤的問題,解析器似乎工作得相當好。如何從html文件中刪除所有不必要的標籤和標誌?
"""for Python 3, from urllib.request import urlopen"""
from urllib2 import urlopen
from bs4 import BeautifulSoup
"""for extracting text data only from txt format"""
txt = urlopen("https://www.sec.gov/Archives/edgar/data/1660156/000166015616000019/0001660156-16-000019.txt")
bs_txt = BeautifulSoup(txt.read())
bs_txt_text = bs_txt.get_text()
len(bs_txt_text) # 400051
"""for extracting text data only from htm format"""
html = urlopen("https://www.sec.gov/Archives/edgar/data/1660156/000166015616000019/f201510kzec2_10k.htm")
bs_html = BeautifulSoup(html.read())
bs_html_text = bs_html.get_text()
len(bs_html_text) # 98042
但問題是我在靠上的位置「txt'格式的文件,而不是‘HTM’的人,所以我的問題是,有沒有什麼辦法對付刪除所有無意義的跡象並從這些文件中提取標籤並僅提取文本信息作爲直接從'htm'文件提取的文本信息?我對使用Python進行解析相對來說比較陌生,所以如果您對此有任何想法,這將非常有幫助。先謝謝你!
這些文件('.txt'和'.htm')似乎都是某種基於SGML的東西,裏面嵌入了HTML文檔。 '.txt'似乎嵌入了很多HTML文檔,而'.htm'只有一個。你可能想嘗試一個SGML解析器而不是HTML解析器。 – user2357112
或...顯然它應該是基於XML的,而不是基於SGML的?在開始的地方有一個部分說「.sgml」,但[顯然它是XML](https://en.wikipedia.org/wiki/XBRL)。 – user2357112
嘗試使用XML解析器解析它。 – user2357112