как пакетно извлечь содержание тега из html-страницы

BULKA8

Есть папка с 2000 html-страниц, нужно извлечь из них содержание тега <title> (на русском) причем чтобы на выходе эти строки располагались в таком же порядке в каком сами страницы лежат в папке.
php/javascript кодить не умею
может кто поможет?

Temach

скинь архив страниц на форум - извлеку бесплатно.

kiracher

скинь архив страниц на форум - извлеку бесплатно.
Спалился, майор?
Руслан не слушай его, лучше grep-ом пробежись, распарсит достаточно читабельно

BULKA8

grep-
если бы я еще знал как написать код ...

BULKA8

спасибо, но там пара сотен МБ

Filan

Грепом тяжело разрулить ситуацию:
<title>Это
такой
идиотский
многострочный
заголовок</title>
Тут sed+awk лучше помогут.

Temach

сожми РАРом - станет 20 мегабайт
пс. и не слушай етих линуксоедофф

BULKA8

у меня там в одной строке - название книги

BULKA8

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

fufa58

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

BULKA8

Спасибо, неплохая прога, у меня есть кракнутая, но она не решает мою проблему

BULKA8

я виндовоз

Impils

Какая у тебя версия винды?
А файл html упорядочены в каком виде?
В таком?
01. BlahBlah.html
02. BlahBla.html
...
1999. BlahBlah.html

viktor954

Почти все *никсовые утилиты, собранные под винду:
http://sourceforge.net/projects/unxutils/
все уже давно тут поняли, что ты виндовз

BULKA8

XP
Да, именно так

nas1234

но она не решает мою проблему
в и треде давали и другие проги.
зачем ты хочешь написать свою собственную систему? используя неподходящие для этого средства. учитывая что ты не умеешь этого делать.

BULKA8

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

Kira

в винде есть свой grep. С блекджеком и регулярками:
findstr /i /r /c:"<title>.*</title>" *.html

Impils

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

nas1234

если бы гланды... он через свою жопу кота катрирует.

val412

и этот кот скачан с сайта.
а если его связать и силой перевести на дб?

BULKA8

напиши пжлст

Impils

Что в результате хочешь получить?
Могу результат скинуть в текстовый файл, будет примерно такого вида:
Имя файл—содержание тега <title>

Kira

а чем вариант с findstr не устраивает?

carusya

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

BULKA8

Именно так и хотел бы,, если можно то хорошо бы разделить имя файла и содерж. тега точкой с запятой (;)

Impils

Скрипт слабал за 5 минут, он довольно топорный :)
Распаковываешь zip, далее перетягиваешь папку с твоими html файлами на скрипт, и всё, в этой папке появится файл !_result.txt с результатом работы.

BULKA8

Архив открывается, в нем файл drag_drop.vbs но архив не распаковывается, я использую WinRAR 4
Отвечает:
! file10133.zip: Неизвестный метод в drag_drop.vbs
! file10133.zip: Нет файлов для извлечения
Все сопутствующие танцы с бубном (открытие в различных Коммандерах) ничего не дали
Их ответы:
- drag_drop.vbs: This archive uses an unknown compression method.
- Метод упаковки не поддерживается
Может быть ты опубликуешь здесь текст скрипта, а я его скопирую в нотпад и сохраню файл как vbs

uncle17

Короче, Склифосовский.
Если будешь меньше тупить, то вот:

<?php
$dir = opendir('path_to_your_dir');

$output = fopen('output.txt', 'a');

while(false != ($file = readdir($dir)))
{
if($file != '.' && $file != '..')
{
$text = fread($file, filesize($file));
unset($matches);
if(preg_match('/<title>(.*)<\/title>/'), $text, $matches)
fputs($output, $file.' - '.(preg_replace('/\s+/g', ' ', $matches[0])).'\r\n');
}
}
fclose($output);
closedir($dir);
?>

Это сделает то, что ты просил в самом начале.

BULKA8

но это же потребует установить php-среду, типа Апачи, не?
В принципе спасибо конечно

uncle17

нет, достаточно просто распаковать архив с PHP

uncle17

вот только парсер кода на форуме фигурные скобки теряет и "\n" превращает в непойми что. Код подправил

Impils

В следующий раз пользуйся бесплатным 7-zip
Перезалил архив:

BULKA8

СУПЕР! Ты - гений! СПАСИБО!

Filan

php-среду, типа Апачи

YUAL

в винде есть свой grep. С блекджеком и регулярками:
findstr /i /r /c:"<title>.*</title>" *.html
а он жадный? как отработает ситуацию с двумя тегами в одном файле?

uncle17

правильно построить регулярку - второй вопрос

agaaaa

правильно построить регулярку
Невозможно

YUAL

судя по факу на сайте майкрософта там весьма жалкие возможности построения регулярок.

Kira

нормально. Но переносы строк ниосиливает.

YUAL

из квантификаторов только
*

+, ? и {m,n}
отсутствуют
понятие о жадной и ленивой квантификации отсутствует.
группировок нет.

BULKA8

Наверное это не очень прилично, но можно я тебя попрошу еще немного мне помочь.
А если это не <title> тэг, а скажем <a>, причем их несколько на странице (и страниц тоже несколько) и внутри тэга еще указатель гиперссылки, ну такое вот: <a href="http://www.xxx.com"> и хотелось бы извлечь эти гиперссылки
так чтобы на выходе было:
filename1.html;http://www.aaa.com
filename1.html;http://www.bbb.com
filename2.html;http://www.xxx.com
filename2.html;http://www.yyy.com
Этим скриптом моя грандиозная задача по оприходыванию 30 гигов будет завершена :grin:

PooH

а потом захочется веса ввести или текст парсить
ненене
бери *sql,
c++|php|java|c#|python|perl|js,
libxml|simpledom и вперед

Impils

С чего мне тебе помогать?
Ты мне ни то что бы пива или денег на телефон не предложил, ты даже плюс не поставил. :mad: :mad: :mad:

BULKA8

тоже правильно. Спасибо за тот файл :grin:

kill-still

а чего никто xslt не посоветовал?
Оставить комментарий
Имя или ник:
Комментарий: