gentoo linux
k s i m u t e
з а м е т к и   о   с и с т е м н о м   а д м и н и с т р и р о в а н и и    
версия v1.3.0
main menu main
Rambler's Top100
  »  WIKI
  »  Заметки (микро-блог)
  »  Smart HDD мониторинг
  »  Linux Software Raid
  »  Windows + Xserver
  »  Pptpd kill
  »  Stress Test pptpd
  »  Консоль на com порту
  »  Cisco 827 h323
  »  Squid + sarg Логи
  »  Squid и 2 канала
  »  arpd
  »  OpenVpn
  »  Perl HTML Parsing
  »  Мониторинг очереди Postfix
  »  Main


Rambler's Top100

Парсим HTML с Perl use HTML::TreeBuilder PERL
Коробанов Сергей
Декабрь 22, 2007

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

Но тем не менее каждый админ должен знать bash,sed,awk, regexp, и Perl (перл рулез), еще VBA, WSH, HTA, HTML, SQL, PHP и C.

Хотябы немножко :) и знать какой мануал вкурить.

Исходная задача:

Имеем каталог с html файлами. Каждый файл содержит различный трэш из тэгов, рекламы, непонятного контента.

нечто похожее на.


<html>
<head>
</head>
<body>
	Всякий контент
	<h1>Вася<h1>
	Итак Вашему вниманию представлены высказывания Васи на последней корпоративке.
	<ul>
		<li> 1 супер-мега фраза про боулинг
		<li> 2 сногшибательный загнул анекдот про программеров
		<li> 3 мега-супер высказывание про политику
	<ul>
	Он жестоко накосячил в вопросе политики, за что будет взят на карандаш нашей службой 
	СБ и под колпак системой СОРМ-2. :) :).
</body>
</html>


Нас интересует тэг:
<H1>автор высказывания</H1>

И тэги

<LI>, содержащие фразы Автора.

Необходимо создать SQL запрос, для добавления в таблицу table двух полей author и frase.

В каждом файле <H1></H1> встречается только один раз, а <LI></LI> может быть несколько.

Используем HTML::TreeBuilder. Тянем его с cpan.org и ставим.
ksi~#gcpan -i HTML::TreeBuilder

Читаем документацию:

perldoc HTML::TreeBuilder
perldoc HTML::Element

Скрипт:



Все! стартуем скрипт, гоним через поток вывод в result.sql, конвертируем с помощью iconv в требуемую кодировку,
ksi~#cat result.sql | iconv -f koi8-r -t cp1251 > result-cp1251.sql
и кормим базу.

Ссылки

http://cpan.org/
Создадим Ваш фирменный стиль: фирменный стиль. Продаются сайты новые и старые.
назад
на главную
наверх
наверх
далее
другие статьи
на главную | contact | © « 2006, Korobanov Sergey»