2012-05-14 7 views
0

У меня 40 000 файлов HTML. В каждом файле есть таблица, содержащая прибыль & отчет об убытках конкретной компании.Скребковые данные в Stata

Я хотел бы очистить все эти данные до Stata. (Или, альтернативно, в файл Excel/CSV). Конечным продуктом должен быть файл Stata/Excel, содержащий список всех компаний и сведения об их балансе (выручка, прибыль и т. Д.)

Могу ли я узнать, как это можно сделать? Я попробовал Outwit, но это не кажется достаточно хорошим.

ответ

1

Stata - не лучший инструмент для работы. Вам нужно будет использовать команды нижнего уровня file для чтения входных текстовых файлов, а затем проанализировать соответствующие таблицы (опять же, используя обработку строк низкого уровня). Ввод их в набор данных - самая легкая часть; вы можете либо

expand 2 in l 
    replace company = "parsed name" in l 
    replace revenue = parsed_revenue in l 

etc., или использовать post механика. С некоторой удачей вы найдете несколько пакетов, которые могут сделать его более простым, но я ничего не знаю, и findit html, похоже, не приносит ничего полезного.

0

Stata - это не тот полезный инструмент для этой работы. В принципе это возможно. Лично я уже делал схожие вещи: чтение файлов ascii в Stata, разбор их и извлечение информации из них. Я сбросил данные в Stata, используя insheet. Затем я обработал данные с помощью Stata's string functions. Это было немного громоздко. И файлы имели довольно простую и ясную структуру. Я не хочу представлять, что происходит, когда файлы имеют более сложную структуру.

Я думаю, что лучшей стратегией является использование языка сценариев, такого как Python, Perl или Ruby. для извлечения информации, содержащейся в html-таблицах. Результаты могут быть легко записаны в файл csv, Excel или даже Stata (.dta).

+0

Нет оснований считать, что Stata по своей сути менее силен здесь, чем язык сценария, и, конечно же, нет оснований ограничивать инструменты, используемые для строковых функций. Никакая программа не может извлечь смысл без указания того, какой смысл нужно извлечь. Эта точка может быть решена только с помощью примеров конкретных файловых структур и определения того, какой код работает в другом программном обеспечении. –

0

Вы должны использовать пакет Python beautifulsoup. Это очень удобно при извлечении данных из файлов HTML. Ниже приведена ссылка.

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

В документации, есть много команд, однако лишь немногие команды имеют важное значение. Ниже приведены важные команды:

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 
Смежные вопросы