2012-05-14 2 views
0

40,000 개의 HTML 파일이 있습니다. 각 파일에는 특정 회사의 이익 진술 & 손실 진술이 포함 된 표가 있습니다.Stata로 데이터 스크랩

이 모든 데이터를 Stata로 스크랩하고 싶습니다. (또는 Excel/CSV 파일로). 최종 제품은 모든 회사의 목록과 대차 대조표 (수익, 이익 등)의 목록이 포함 된 Stata/Excel 파일이어야합니다.

어떻게 수행 할 수 있는지 알고 있습니다. 나는 Outwit을 시도했지만 충분하지 않은 것 같습니다.

답변

1

Stata는 정확하게 작업을위한 최상의 도구는 아닙니다. 낮은 수준의 file 명령을 사용하여 입력 텍스트 파일을 읽은 다음 관련 테이블을 구문 분석해야합니다 (다시 낮은 수준의 문자열 처리 사용). 이를 데이터 세트에 넣는 것이 가장 쉬운 부분입니다. 또는 post mechanics를 사용하십시오. 운이 좋으면 좀 더 간단하게 만들 수있는 패키지를 찾을 수 있지만 어떤 것도 알지 못합니다. findit html은 사용할 수있는 패키지가없는 것으로 보입니다.

0

Stata는이 작업에 적합한 도구가 아닙니다. 원칙적으로 가능합니다. 개인적으로 나는 이미 비슷한 일을 해왔다 : 아스키 파일을 Stata로 읽어 들여 파싱하고 정보를 추출했다. insheet을 사용하여 데이터를 Stata에 버렸습니다. 그런 다음 Stata의 string functions으로 데이터를 처리했습니다. 조금 번거 롭습니다. 그리고 파일은 상당히 단순하고 명확한 구조를 가졌습니다. 파일이 좀 더 복잡한 구조를 가지고있을 때 어떤 일이 일어날 지 상상하고 싶지 않습니다.

저는 최상의 전략은 Python, Perl 또는 Ruby와 같은 스크립팅 언어를 사용하는 것이라고 생각합니다. html 테이블에 포함 된 정보를 추출합니다. 결과는 csv, Excel 또는 심지어 Stata (.dta) 파일에도 쉽게 기록 할 수 있습니다.

+0

없습니다. 어떤 의미의 프로그램을 추출하지 않고도 어떤 프로그램도 의미를 추출 할 수 없습니다. 특정 파일 구조의 예제를 제공하고 다른 소프트웨어에서 어떤 코드가 작동하는지 확인해야만이 문제를 해결할 수 있습니다. –

0

Python beautifulsoup 패키지를 사용해야합니다. HTML 파일에서 데이터를 추출하는 데 매우 편리합니다. 다음은 링크입니다. 문서에서

http://www.crummy.com/software/BeautifulSoup/

그러나 단지 몇 가지 명령이 중요하다, 많은 명령이 있습니다. 중요한 명령은 다음과 같습니다 확실히 문자열 함수에 사용되는 도구를 제한 할 이유가 스크립트 언어보다 같은 본질적으로 덜 강력한 여기 STATA 간주하지 않으며, 할 이유가

from bs4 import BeautifulSoup 

#read the file 
fp=open(file_name,'r') 
data=fp.read() 
fp.close() 


#pass the data to beautifulsoup 
soup = BeautifulSoup(html_doc, 'html.parser') 

#extract the html elements by id and write result into file