저는 Python의 BeautifulSoup 또는 HTMLParser를 사용하여 SEC의 EDGAR 시스템에서 10K 보고서 (예 : 회사의 프록시 보고서)에서 텍스트 정보 만 추출하려고합니다. 그러나 내가 사용하고있는 파서는 무의미한 표지판과 태그의 상당 부분을 포함하여 'xxtl'형식의 파일에 제대로 작동하지 않는 것처럼 보이며 일부 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
그러나 문제는 내 질문은 그래서, HTM '사람'여부에, txt' 형식 파일 '에 의존 할 수있는 위치에 오전, 모든 의미 흔적을 제거하는 처리 할 수있는 방법이있다 파일에서 태그를 추출하고 'htm'파일에서 직접 추출한 텍스트 정보 만 추출하면됩니까? 필자는 Python을 사용하여 파싱하는 것이 상대적으로 새롭기 때문에 이에 대한 아이디어가 있다면 큰 도움이 될 것입니다. 미리 감사드립니다.
이 파일들 ('.txt'과'.htm')은 내부에 HTML 문서가 내장 된 일종의 SGML 기반의 것으로 보입니다. '.txt'에는 많은 HTML 문서가 내장되어있는 것처럼 보입니다. 반면 .htm에는 단 하나의 문서 만 있습니다. HTML 파서 대신 SGML 파서를 사용해 볼 수도 있습니다. – user2357112
또는 ... 분명히 그것은 SGML 기반이 아닌 XML 기반이어야합니다. 시작 부분에는 ".sgml"이 있지만 XML은 분명히 있습니다 (https://en.wikipedia.org/wiki/XBRL). – user2357112
XML 파서로 파싱 해보십시오. – user2357112