我试过两种不同的脚本来删除Youtube视频的所有评论。一切都很好,但有一个问题:Youtube视频ID以一个hiphen开头,就像-FIHqoTcZog不起作用一样。我想知道是否有一种方法可以将ID的每一个字符从shell解释中解脱出来,例如使用ID:\-\F\I\H\q\o\T\c\Z\o\g,但在我的情况下这是行不通的。
我使用的脚本是:youtube-评论-下载程序和youtube-评论-刮刀。两者都需要视频ID。即使它被单引号或双引号包围,ID也是有效的,但如果视频ID以连字符开头,则两者都不起作用。
Youtube-dl以前也有类似的问题,但现在它接受以连字符开头的ID :这是通过使用选项--id来完成的,但在我们的情况下,它仍然不能工作,除非连字符前面有--,在另一种情况下,如果ID不以连字符开头,则可以将视频名转换为--id -- -FIHqoTcZog。
我的脚本是否有任何方法可以使用ID以连字符开头,就像它在Youtube-dl's一案中所做的那样,或者使用其他的工作呢?
发布于 2018-03-05 20:17:47
Related问题: “-”(双冲)是什么意思?(又称“裸双破折号”)
连字符不是由shell解释的,而是由您正在使用的程序/脚本(更准确地说,是它的解析器)解释的。这就是为什么转义(在shell级别)不能工作的原因。
程序通常将带引号(S)的参数识别为选项,而不是操作数。要将像-foo这样的参数解释为操作数,程序通常遵循以下一种或多种方式:
--参数识别为选项标记的结尾:program -- -fooprogram --option -fooprogram prefix-foo在您的具体场景中:
youtube-dl接受:-- -FIHqoTcZoghttps://www.youtube.com/watch?v=-FIHqoTcZogyoutube-comment-downloader似乎接受了:--youtubeid -FIHqoTcZogyoutube-comment-scraper似乎接受了:-- -FIHqoTcZoghttps://www.youtube.com/watch?v=-FIHqoTcZog发布于 2018-03-05 15:40:16
最后,在重新安装脚本youtube-评论-刮刀之后,我找到了一个解决方案,突然,在视频ID前面添加了以-开头的--。这个提示在他们的任何文档中都是不可用的。现在起作用了:youtube-comment-scraper --output OtherFile -f csv -- -FIHqoTcZog
在另一个脚本中,它仍然不能工作。
https://unix.stackexchange.com/questions/428279
复制相似问题