Самый быстрый / простой способ разбора HTML сайта? - PullRequest
4 голосов
/ 07 сентября 2011

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

Раньше я выполнял разбор HTML с помощью PHP и регулярных выражений, но это было мучительно утомительно, и я бы предпочел не проходить через это снова. Из-за этой проблемы я несколько месяцев откладывал завершение своей базы данных. Есть ли более быстрый и / или более простой способ сделать это? Большинство языков в стиле C подходят для меня (C, C ++, Perl, PHP, Python и т. Д. Все в порядке, но не C #, Java или Objective-C).

П.С .: Мне все равно, насколько грязным будет сценарий / программа или что-то в этом роде, пока она выполняет свою работу.

Ответы [ 4 ]

1 голос
/ 14 июня 2012

Вы можете использовать php с simpleHtmlDom для анализа html, а simpleHtmlDom очень прост ..

http://simplehtmldom.sourceforge.net/manual.htm

1 голос
/ 07 сентября 2011

Я сделал это несколько месяцев назад, и после некоторого исследования я решил использовать библиотеку LXML python. См. Учебник по разбору здесь . И да, это не только для анализа XML, но и для HTML.

Мне это нравится, потому что он мощный, простой в использовании.

1 голос
/ 07 сентября 2011

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

Вам нужно что-то, что сканирует сайт. На самом деле, это может быть совершенно другая программа, которая просто загружает файлы .html на ваш компьютер, на котором вы затем запускаете анализатор. Такие роботы существуют, рассмотрите wget или curl - у них обоих есть варианты паука.

Вам понадобится парсер для сайта. Не используйте regexp для анализа HTML, используйте синтаксический анализатор HTML или XML (например, Perl's HTML :: Parser ). Затем вам придется преобразовать полученную структуру данных в пригодные для использования данные (например, первая таблица> tr> td - это имя монстра, вторая td - это раса и т. Д.

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

На самом деле, написание кода не будет самым трудным делом, но отображение «какой элемент на странице означает, что и где следует хранить, где и как» будет.

1 голос
/ 07 сентября 2011

Я использовал http://htmlagilitypack.codeplex.com/ и http://code.google.com/p/fizzler/ для анализа HTML и получения необходимой информации. Работает очень хорошо.

...