Переименование файлов HTML с использованием тегов <title>и даты публикации - PullRequest
0 голосов
/ 17 октября 2019

Я хотел бы переименовать файлы HTML, используя теги заголовка HTML и дату публикации.

Я нашел ответ для заголовка, используя теги заголовка здесь:

Отредактированный код:

#!/bin/bash
for f in $(find . -type f | grep \.html)
   do
   title=$( awk 'BEGIN{IGNORECASE=1;FS="<title>|</title>";RS=EOF} {print $2}' "$f" )
   mv -i "$f" "${title//[ ]/-}".html
done

Переименование файлов HTML с использованием тегов

, не знаю, как заставить работать часть даты.

Результатом будет title_PublicationDate.html

Вот пример URL: https://www.voltairenet.org/article178442.html

Это будет переименовано из "article178442.html" в "You Are The Hope" Пола Крейга Робертса_20130508.html "

Вот строки, в которых есть дата публикации:

Строка 19:

<meta property="og:article:published_time" content="2013-05-07T23:31:07Z" />

Строка 207:

<span class="updated" title="2013-05-8"><time datetime="2013-05-08 02:31:07" pubdate>| 8 May 2013</time></span></span>

Правка: можно ли это сделатьэто с питоном и красивым супом с использованием тегов Open Graph?

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Я потратил некоторое время на то, чтобы угадать, ваш вопрос не очень ясен, но я пришел к такому решению:

Я сделал git-репозиторий под названием renamer . Этот быстрый маленький скрипт может быть запущен из папки со всеми вашими индексными файлами, и он извлечет все файлы .html в папке и переименует их в текст внутри тега <title> соответствующего HTML-файла плюс дата егобыл опубликован, который я извлек из одного из метатегов в html-файле. Этот сценарий принимает структуру метатега в вашем HTML-элементе, поэтому он должен работать до тех пор, пока структура мета-тега остается неизменной.

ПРИМЕЧАНИЕ: Файлы, которые вы загружаете с github, должны быть помещены в папку, которая находится внутри каталога ваших html-файлов (см. Изображения ниже)

Вы, вероятно, уже знаете это , но когда вы поместили файлы в папку, запустите npm install в папке программы. Это установит все необходимые зависимости, которые в данном случае file-system, path и readline.

Для запуска программы введите node main в папке программы, и просто таквсе HTML-файлы в родительской папке будут переименованы.

The files before the program has been engaged

The files after the program has been engaged

The command to run inside of the folder containing my program

The folder in which the downloaded files should be located

Теоретически вы должны иметь возможность хранить программу в папке, где находятся ваши индексные файлы длябудущее использование, а также. Очень удобно, если вам когда-нибудь понадобится быстро изменить некоторые имена в будущем :)

Надеюсь, я ответил на ваш вопрос.

1 голос
/ 18 октября 2019

Вы можете добавить дату публикации, используя sed из метатега:

<meta property="og:article:published_time" content="2013-05-07T23:31:07Z" />

Используя сценарий sed, чтобы добавить дату публикации в ГГГГММДД

pub_date=$(sed -n -e 's/.*meta property.*published_time.*\([0-9][0-9][0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\).*/\1\2\3/p')

Код «оппортунистический»и принять очень специфическую структуру метатега. Однако для быстрого и грязного решения - это сработает. Используйте $ pub_date для создания имени файла

...