alex-lenk
@alex-lenk
Разработчик сайтов

Есть ли готовый парсер html страниц?

Нужен парсер, которому бы задал папку для сканирования joxi.ru/KAgM5Q3S09BOml и он вывел бы на отдельную html страницу список всех файлов с расширением .html
  • Вопрос задан
  • 889 просмотров
Решения вопроса 1
svistiboshka
@svistiboshka
живые веб интерфейсы
list.php но это не парсер. сам пользуюсь
<ol>
    <?php foreach (glob("*.html") as $page): ?>
        <li>
            <a href="<?php echo $page ?>">
                <?php  echo $page; ?>
            </a>
        </li>
    <?php endforeach; ?>
</ol>


если под винду то создавайте файл типа list.cmd
@echo off

call :start > list.html

:start
echo ^<ol^>
for %%f in (*.html) do echo ^<li^>^<a href^="%%~nxf"^>%%~nxf^</a^>^</li^>
echo ^</ol^>
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
abyrkov
@abyrkov
JavaScripter
find . -name "*.html" или даже проще *.html. Таким образом мы найдем все .html
А вот все целиком)
#!/bin/bash

to="echo -en"

files=$(find . -name "*.html")
$to "<!DOCTYPE html>" > $1
$to "<html>" >> $1
$to "<head>" >> $1
$to "<title>Your html files</title>" >> $1
$to "</head>" >> $1
$to "<body>" >> $1

for i in $files
do
  $to "<a href=\""$i"\">"$i"</a>" >> $1
done

$to "</body>" >> $1
$to "</html>" >> $1

Но это на bash. Впрочем, вряд ли будут с ним проблемы. На Windows есть Linux Subsystem в которой есть bash. На Linux... bash там по-умолчанию.
Ответ написан
Комментировать
<?php
$path = "папка";
	$slides = glob($path."/*.{html}", GLOB_BRACE);
	if(count($slides) != 0 )
		{
			foreach($slides as $slide)
				{
				$path_parts = pathinfo($slide);
				$dir = $path_parts['dirname'];
				$name =  $path_parts['basename'];
				
				echo $dir.'/'.$name.'<br/>';
				}
		}
?>
Ответ написан
Комментировать
Для ноды:

var fs = require('fs');
var path = require('path');
var dir = process.cwd(); // папка та же, откуда запущен скрипт

// все файлы в папке
var files = fs.readdirSync(dir); 

// отфильтровываем html-файлы
var htmlFiles = files.filter(file => path.extname(file) === '.html');

//дальше делайте с ними что хотите, например:
var stream = fs.createWriteStream('my_file.txt');
stream.once('open', fd => {
  stream.write('<ul>\n');
  htmlFiles.forEach(fileName => {
    stream.write(`<li>${fileName}</li>\n`);
  });
  stream.write('</ul>');
  stream.end();
});
Ответ написан
Комментировать
Rou1997
@Rou1997
Где эта папка, на вашем сервере или нет, доступ к ее "оглавлению" (index) можно получить или только методом перебора?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы