Как очистить веб-страницы в другом формате / макете?

StackOverflow https://stackoverflow.com/questions/1634969

  •  06-07-2019
  •  | 
  •  

Вопрос

Мне нужно почистить отчеты формы 10-K (т.е. годовые отчеты американских компаний) с веб-сайта SEC для проекта.

Проблема в том, что компании не используют точно такой же формат для подачи этих данных. Так, например, данные по недвижимости для 2 разных компаний могут отображаться, как показано ниже

1st company

Property name   State  City     Ownership   Year  Occupancy Total Area
-------------   -----  ------   ---------   ----  --------- ----------
ABC Mall         TX    Dallas   Fee         2007    97%       1,347,377
XYZ Plaza        CA    Ontario  Fee         2008    85%       2,252,117



2nd company

Property          % Ownership  %Occupany  Rent   Square Feet
---------------   -----------  ---------  -----  -----------
New York City
  ABC Plaza       100.0%        89.0%     38.07    2,249,000 
  123 Stores      100.0%        50.0%     18.00    1,547,000 
Washington DC Office
  12th street     .......
  2001, J Drive   .......

etc.

Кроме того, расположение данных может быть совершенно другим для других компаний.

Я хотел бы знать, существуют ли более эффективные способы очистки этого типа разнородных данных, кроме написания сложных запросов регулярных выражений.

У меня есть свобода использовать Java, Perl, Python или Groovy для этой работы.

Это было полезно?

Решение

Я бы предпочел сохранить библиотеку метафайлов, которые описывают макет каждой страницы, с которой вы хотите очистить данные, и использовать ее при попытке получить данные.

Таким образом, вам не нужны сложные команды reg-ex, и если сайт меняет свой дизайн, вы просто меняете один из ваших файлов.

Как вы решите создать метафайл, зависит только от вас, но такие вещи, как соответствующие имена классов или теги, могут быть хорошим началом.

затем опишите, как извлечь данные из этого тега.

Не уверен, что есть инструмент, который все это делает.

Другой, более приятный способ - связаться с владельцами этих сайтов и посмотреть, предоставляют ли они канал в виде веб-сервиса или что-то, что вы можете использовать для получения данных. Я экономлю на душевных страданиях.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top