【发布时间】:2019-10-19 17:12:53
【问题描述】:
我想使用 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
Renaming HTML files using <title> tags
不确定如何让日期部分正常工作。
结果将是 title_PublicationDate.html
这是一个示例网址:https://www.voltairenet.org/article178442.html
将从“article178442.html”重命名为“You Are The Hope by Paul Craig Roberts_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>
编辑:是否可以使用 Python 和使用 Open Graph 标签的美丽汤来做到这一点?
【问题讨论】:
-
你的问题很不清楚。请指定您想使用什么方法,以及什么编程语言。我的意思是,有很多方法可以做到这一点。
-
该方法对我来说不是很重要,我正在运行 Linux 和 bash,所以任何可以在那里工作的东西。否则基于上面的例子,如果它很容易改变的话。
-
好吧,就个人而言,我会创建一个 node.js 程序,因为这是我最擅长的。只需使用 npm(文件系统)中的“fs”包,就可以做你想做的事。如果你愿意,我可以编写一个你从命令提示符运行的程序,但它需要你安装 node.js。
-
不要使用旧的和不推荐使用的反抽头,使用括号。像这样:
for f in $(find . -type f | grep \.html) -
edit 您的问题包含简洁、可测试的样本输入(您要解析的文件的样本)和预期的输出(您要从这些文件中提取的文本)。不要在 cmets 中添加相关信息,因为我们必须搜索它并且无法清晰地对其进行格式化 - 将任何人需要知道的所有信息都放在能够帮助您解决问题的地方。
标签: python html awk beautifulsoup rename