Как очистить веб-страницы в другом формате / макете?
-
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, и если сайт меняет свой дизайн, вы просто меняете один из ваших файлов.
Как вы решите создать метафайл, зависит только от вас, но такие вещи, как соответствующие имена классов или теги, могут быть хорошим началом.
затем опишите, как извлечь данные из этого тега.
Не уверен, что есть инструмент, который все это делает.
Другой, более приятный способ - связаться с владельцами этих сайтов и посмотреть, предоставляют ли они канал в виде веб-сервиса или что-то, что вы можете использовать для получения данных. Я экономлю на душевных страданиях.