Лучший способ разобрать таблицу HTML - PullRequest
0 голосов
/ 14 декабря 2011

Я заинтересован в разборе следующей таблицы и тому подобных: http://www.cityofames.org/ftp/routes/Fall/wdreds&w.html

Какие-нибудь предложения по лучшему инструменту для работы? После поисков я не могу решить, что мне следует использовать, и хотел бы получить некоторую обратную связь, прежде чем что-то совершать.

Я открыт для любых языков / инструментов.

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

С рысью я могу сделать:

$ lynx -dump http://www.cityofames.org/ftp/routes/Fall/wdreds\&w.html
    6:25  6:31  6:36  6:41 -----  6:46  6:50      6:56
    7:02  7:08  7:14  7:20 -----  7:26  7:30      7:36
   ----- ----- ----- -----  7:38  7:43  7:47      7:53 1A
    7:28  7:35  7:42  7:48 -----  7:56  8:00      8:06
   ----- ----- ----- -----  7:58  8:03  8:07      8:13 1A
...

становится очень легко разобрать с выбранным языком сценариев, html2text также может работать (никогда не использовал его).

Вы также можете поиграться с grep / sed для его форматирования.

1 голос
/ 14 декабря 2011

HTML слишком сложен для понимания любым парсером. Сначала необходимо преобразовать это в достаточно близкий формат XML (для хорошо подобранных тегов, которые совпадают), например XHTML, с помощью программы, подобной tidy (http://tidy.sourceforge.net/). Затем вы можете использовать синтаксический анализатор XML / XHTML для анализа правильно сформированного XML. Обратите внимание, что вам придется обрабатывать данные на основе стилей шрифтов и преобразовывать теги на основе стилей шрифтов во множество раз.

Вот что вы можете сделать при разборе

start TR element
  --Create Array
 start b element
  -- Add One time
 end b element
 start b element
  -- Add second time
 end b element
end TR element        
1 голос
/ 14 декабря 2011

Если вы ищете анализатор HTML, в Java есть несколько опций:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...