0
我发现了一种通过我找到的Perl脚本从图像链接中提取替换文本的方法。但是,该方法需要下载目标HTML;通过Perl脚本处理它,然后生成一个带有我需要的特定alt文本的文本文件;然后删除一些额外的文本,我不能通过代码手动过滤出来,因为我不知道如何使用Perl的正则表达式工作(我试图安装PCRE无济于事)。使用JavaScript书签从图像链接中提取替代文本
这种方法仍然不切实际,我敢肯定,我可以通过JavaScript书签提取更多更快的alt文本,并且可以立即将输出整齐地列入新选项卡中。但是,我不知道如何将Perl脚本转换为JavaScript,也不知道如何从头开始编写。
这里的Perl脚本:
{
# Get data from HTML file
my $From = cwd() . '/' . $ARGV[0];
open(HTMLFILE, '<' . $From) or die("Cannot open $From to read.");
my $Html;
read HTMLFILE, $Html, -s $From;
close HTMLFILE;
# Find IMG elements
print "Images found!";
my %AltTexts;
while ($Html =~ /(<IMG\b.*?>)/isg) {
my $ImgElement = $1;
# Find SRC tag
$ImgElement =~ /SRC\s*=\s*([\"\'])(.*?)\1/is;
my $Src = $2;
# Find ALT tag & store text
if ($ImgElement =~ /ALT\s*=\s*([\"\'])(.*?)\1/is) {
$AltTexts{$Src} = $2;
}
else { # No ALT found so give it default text if none already found
unless (exists($AltTexts{$Src})) {
$AltTexts{$Src} = 'NO_ALT_TEXT';
}
}
}
# Write extracted data to a file
my $To = cwd() . '/' . $ARGV[0] . '.txt';
open(ALTTEXTFILE, '>' . $To) or die("Cannot open $To to write.");
foreach my $SrcPath (sort keys %AltTexts) {
print ALTTEXTFILE "$AltTexts{$SrcPath}\n";
}
close ALTTEXTFILE;
}
我并调整它从打印链接,删除空行等
原文可以发现停止脚本here
所以,我的问题是提取替代文字的JavaScript是什么样的?
这是伟大的。任何方式使输出显示在单独的浏览器选项卡而不是对话框? – lestrange
查看更新 - 未测试,因为这里的沙箱不允许它 – mplungjan
这太棒了!谢谢你,先生。 – lestrange